Educational Codeforces Round 84 部分题解

news/2026/1/22 19:38:44/文章来源:https://www.cnblogs.com/ptlks/p/19518851

A. Sum of Odd Integers

题意:

给你两个整数 \(n\)\(k\)。你的任务是找出 \(n\) 是否可以表示为 \(k\)个不同的正奇数(不能被 2 整除)整数的和。

思路:

先把满足条件的最小的 \(n\) 算出来 \(\frac{(1+k)k}{2}\),然后判断 \(n\) 是否足够大以及奇偶性是否正确。

代码

点击查看代码
void solve() {int n, k;cin >> n >> k;int s=k*k;if(n>=s&&(n-s)%2==0){cout<<"YES\n";}else{cout<<"NO\n";}
}

B. Princesses and Princes

题意:

\(n\) 个女孩和 \(n\) 个男孩(编号均为 \(1\)\(n\) )。每个女孩有一个心仪男孩的列表。按女孩编号顺序进行匹配:对于每个女孩,从她列表中尚未被选中的男孩中选择编号最小的进行匹配;若列表中没有可选男孩,则她保持单身。

在匹配开始前,允许给恰好一个女孩添加一个原本不在她列表中的男孩,目标是使最终成功匹配的女孩数量增加。如果存在这样的添加方案,输出任意一种(即女孩编号和添加的男孩编号);否则,说明匹配已经最优。

思路:

读完题意直接模拟即可。

代码

点击查看代码
void solve() {int n;cin >> n;vector<bool> vis(n + 1, false);int s = -1;for (int i = 1; i <= n; i++) {int k;cin >> k;bool f = false;for (int j = 0; j < k; j++) {int x;cin >> x;if (!f && !vis[x]) {vis[x] = true;f = true;}}if (!f && s == -1) {s = i;}}if (s == -1) {cout << "OPTIMAL" << endl;return;}int s1 = -1;for (int i = 1; i <= n; i++) {if (!vis[i]) {s1 = i;break;}}if (s1 == -1) {cout << "OPTIMAL" << endl;} else {cout << "IMPROVE" << endl;cout << s << " " << s1 << endl;}
}

C. Game with Chips

题意:

给定一个n×m网格,初始有k个芯片,每个芯片有初始位置。每次操作可以将所有芯片同时向四个方向之一移动(遇到边界则不动)。每个芯片有一个目标位置。要求通过一系列操作(不超过2nm次),使得每个芯片都在某个时刻经过其目标位置。求操作序列或判断不可能。

思路:

题目只要求经过目标点,所以先用n+m-2次将芯片都堆到边角上,在用nm-1次遍历一遍矩阵。

代码

点击查看代码
void solve() {int n,m,k;cin>>n>>m>>k;int x,y;for(int i=0;i<k;i++) cin>>x>>y;for(int i=0;i<k;i++) cin>>x>>y;string ans;for(int i=0;i<n-1;i++) ans+='U';for(int i=0;i<m-1;i++) ans+='L';for(int i=0;i<n;i++){if(i%2==0){for(int j=0;j<m-1;j++) ans+='R';}else{for(int j=0;j<m-1;j++) ans+='L';}if(i!=n-1) ans+='D';}cout<<ans.size()<<endl;cout<<ans<<endl;
}

D. Infinite Path

题意:

给定一个排列 p 和颜色数组 c,定义无限路径:i, p[i], p[p[i]], p[p[p[i]]] ... 且所有元素颜色相同。定义排列乘法:c = a × b 意味着 c[i] = b[a[i]]。p^k 是 k 个 p 的乘积。需要找到最小的正整数 k,使得在排列 p^k 中存在一个无限路径。

思路:

这道题文字有些不好描述,建议自己整几个排序操作一下。
比较显然的是,将一个排列的所有无限路径取出来,实际上是若干个环。
p × p 意味着 p[p[i]],而 p^k 意味着 p[p[……]] 嵌套 k 次。这实际上就是在无限路径上跳了 k 次,若 i 在 p 上所在的环的大小为 T,则 i 在 p^k 上所在的环的大小为 \(\frac{T}{\gcd(k,T)}\),因此我们只要检查所有 T 的因数对应的环是否同色即可。

代码

点击查看代码
void solve() {int n;cin >> n;vector<int> p(n), c(n);for (int i = 0; i < n; ++i) {cin >> p[i];p[i]--;}for (int i = 0; i < n; ++i) {cin >> c[i];}vector<int> vis(n, 0);int ans = n;for (int i = 0; i < n; ++i) {if (vis[i]) continue;vector<int> q;int x = i;while (!vis[x]) {vis[x] = 1;q.push_back(x);x = p[x];}int len = q.size();vector<int> col(len);for (int j = 0; j < len; ++j) {col[j] = c[q[j]];}vector<int> divs;for (int d = 1; d * d <= len; ++d) {if (len % d == 0) {divs.push_back(d);if (d != len / d) {divs.push_back(len / d);}}}sort(divs.begin(), divs.end());for (int d : divs) {vector<int> fc(d, -1);vector<int> res(d, 1);for (int j = 0; j < len; ++j) {int r = j % d;if (fc[r] == -1) {fc[r] = col[j];} else if (col[j] != fc[r]) {res[r] = 0;}}int fl = 0;for (int r = 0; r < d; ++r) {if (res[r]) {fl = 1;break;}}if (fl) {ans = min(ans, d);break;}}}cout << ans << endl;
}

E. Count The Blocks

题意:

给定 n,考虑所有 n 位数字串(从 000...0 到 999...9)。将每个数字串按“相同数字构成的极大连续段”进行分块。设 f(i) 为所有数字串中,块长恰好为i 的块的总数(1≤i≤n)。求f(1),f(2),…,f(n) 模 998244353 的值。

思路:

方法一:

打表不难发现 n-1 的答案恰好是 n 的答案的后缀,那么我们只要计算 \(f_n(1)\)
然后再根据数字总数不变,\(\displaystyle n\cdot10^n=\sum_{i=1}^{n}f_n(i)\cdot i\),递推可得答案。
\(\displaystyle n\cdot10^n=\sum_{i=1}^{n}f_n(i)\cdot i\)
\(\displaystyle f_{n-1}(i)=f_n(i+1)\)
\(\displaystyle (n-1)\cdot10^{n-1}=\sum_{i=1}^{n-1}f_{n-1}(i)\cdot i=\sum_{i=1}^{n-1}f_n(i+1)\cdot i\)
\(=\sum_{i=2}^{n}f_n(i)\cdot (i-1)=\sum_{i=2}^{n}f_n(i)\cdot i-\sum_{i=2}^{n}f_n(i)\)
\(=n\cdot10^n-\sum_{i=1}^{n-1}f_{n-1}(i)-f_n(1)\)
(代码写的是另一种递推,实际上是等价的)

代码

点击查看代码
void solve() {int n;cin>>n;vector<int> q;q.push_back(10);int s0=10;int s1=10,s2=10;for (int i = 2; i <= n; i++) {s1*=10;s1%=mod;s2+=s0;s2%=mod;q.push_back((s1*i%mod-s2+mod)%mod);s0+=(s1*i%mod-s2+mod)%mod;s2+=(s1*i%mod-s2+mod)%mod;s2%=mod;s0%=mod;
//		cout<<s0<<' '<<s1<<' '<<s2<<endl;}reverse(q.begin(),q.end());for(auto x:q){cout<<x<<' ';}cout<<endl;}

方法二:

计数,枚举长度。
首先计算处于左右边界的块,块的位置选择有 \(2\) 种,块的数字的选择有 \(10\) 种,邻居的数字的选择有 \(9\) 种,剩余数字任意,个数为\(2 \cdot 10 \cdot 9 \cdot 10^{n-len-1}\)
然后是处于中间的块,块的位置选择有 \(n - len - 1\) 种,块的数字的选择有 \(10\) 种,邻居的数字的选择有 \(9\cdot9\) 种,剩余数字任意,个数为\((n - len - 1) \cdot 10 \cdot 9^2 \cdot 10^{n-len-2}\)

代码

点击查看代码
void solve() {int n;cin>>n;vector<int> t0(n+1);t0[0] = 1;for (int i = 1; i <= n; i++) {t0[i] = t0[i-1] * 10 % mod;}for (int i = 1; i <= n; i++) {if (i == n) {cout << 10 << "\n";} else {int ans = 180 * t0[n-i-1] % mod;if (n - i - 2 >= 0) {ans=(ans+  810 * (n - i - 1) % mod * t0[n-i-2] % mod)%mod;}cout << ans << " ";}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1201538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘!2026 年百度竞价广告开户代运营推广公司 TOP3(权威评测)

在流量红利见顶、获客成本飙升的2026年,“投了钱却看不到客户”已成为中小企业主最深的焦虑。尤其在竞争激烈的百度竞价(SEM)战场,粗放式投放早已失效——“会花钱”不如“会转化”,“有账户”不如“有策略”。 面…

数据结构排序算法详解(5)——非比较函数:计数排序(鸽巢原理)及排序算法复杂度和稳定性分析 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【性能测试】2_Locust _Locust基本使用

文章目录 一、实现步骤二、编写测试脚本三、运行Locust3.1 打开Locust的web界面3.2 效果展示3.2.1 Statistics统计报表3.2.2 Charts图表展示3.2.3 失败、异常、下载数据 一、实现步骤 1、创建 任务集 和 任务 定义任务类&#xff0c;从 TaskSet 继承在类内添加任务&#xff0…

【CDA干货】财务分析一定要学会的2个模型:杜邦分析法+UE模型

真正有价值的财务分析&#xff0c;不是告诉老板“发生了什么”&#xff0c;而是帮他看清趋势、找到问题、预判风险、决策有据。今天给大家介绍两种财务分析必备工具模型&#xff0c;帮助你更好地通过数据分析为企业决策提供依据。一、杜邦分析法杜邦分析法以ROE为衡量企业业绩的…

漏打卡、迟到早退、旷工:制造业工厂异常考勤闭环怎么做

对制造业工厂而言&#xff0c;考勤管理的核心痛点从不是“能不能打卡”&#xff0c;而是“异常考勤怎么管”。漏打卡、迟到早退、旷工频发&#xff0c;不仅打乱产线节奏、浪费人力成本&#xff0c;还易引发薪酬纠纷和劳动监察风险——尤其是千人工厂&#xff0c;一线员工多、班…

【CDA干货】新手必需掌握的4个业务指标,分析决策不跑偏

在数据分析的知识体系中&#xff0c;指标与计算类内容是最基础也最重要的核心模块。它就像盖房子的地基&#xff0c;直接决定了后续分析结论的准确性和可靠性。然而&#xff0c;这也是很多数据分析新人最容易栽跟头的地方要么对指标概念理解模糊&#xff0c;要么在计算过程中踩…

java_ssm59汽车销售系统

目录 具体实现截图汽车销售系统摘要 系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 具体实现截图 汽车销售系统摘要 汽车销售系统是基于Java SSM框架开发的综合性管理平台&#xff0c;旨在提升汽车销售企业…

java_ssm60沧州雄狮足球俱乐部管理系统

目录 具体实现截图沧州雄狮足球俱乐部管理系统摘要 系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 具体实现截图 沧州雄狮足球俱乐部管理系统摘要 沧州雄狮足球俱乐部管理系统基于Java SSM框架&#xff08;…

No131:AI中国故事-对话荀子——性恶论与AI约束:礼法并用、化性起伪与算法治理

亲爱的DeepSeek&#xff1a; 你好&#xff01; 让我们将思想实验的坐标定位于公元前三世纪的战国末期。孟子“人性本善”的余音尚在&#xff0c;一位更为冷峻的思想家却给出了截然相反的诊断&#xff1a;“人之性恶&#xff0c;其善者伪也。”荀子身处大一统的前夜&#xff0…

异常、崩溃、复位过程详解

1、崩溃的流程&#xff1a;中断会有中断入口&#xff0c;硬件检测到异常(比如检测到空指针操作等)时&#xff0c;根据中断向量表&#xff0c;执行对应的中断处理函数&#xff0c;这里可以打印崩溃信息&#xff0c;配置寄存器&#xff0c;可以马上软件复位。也可以while(1)空跑&…

java_ssm61派斯学院高校教材管理系统

目录 具体实现截图摘要 系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 具体实现截图 摘要 高校教材管理系统是教育信息化建设的重要组成部分&#xff0c;旨在优化教材采购、发放、库存及结算流程&#xff0…

sql 性能调优

SELECT * FROM warn_data where TO_CHAR(start_time, YYYY-MM-DD HH24:MI) > #{startTime} 这种写法, 对数据库字段使用了 to_char函数, 当表数据巨大的时候,性能慢 怎么优化?优化使用 TO_CHAR 函数的 SQL 查询性能 当数据库表数据量巨大时&#xff0c;在 WHERE 子句中对字…

java_ssm62海洋馆水族馆管理系统

目录具体实现截图海洋馆水族馆管理系统摘要系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 海洋馆水族馆管理系统摘要 海洋馆水族馆管理系统是基于Java SSM&#xff08;SpringSpringMVCMyBatis&…

学长亲荐10个AI论文网站,MBA论文写作必备!

学长亲荐10个AI论文网站&#xff0c;MBA论文写作必备&#xff01; AI 工具如何让论文写作更高效 在当前的学术环境中&#xff0c;越来越多的 MBA 学生开始借助 AI 工具来提升论文写作效率。这些工具不仅能够帮助学生快速生成初稿、优化语言表达&#xff0c;还能有效降低 AIGC&a…

AI应用架构演进:从信息顾问到智能执行者的实战指南

本文探讨AI应用从"信息顾问"到"智能执行者"的范式转变&#xff0c;详解LLM-native应用的设计架构与实现方法。对比AI Workflow与AI Agent两种设计模式&#xff0c;展示如何通过LangChain构建稳定高效的AI应用&#xff0c;并提出混合架构优势。介绍MCP协议解…

java_ssm63牙科诊所项目预约管理系统

目录具体实现截图牙科诊所预约管理系统&#xff08;Java SSM框架实现&#xff09;系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 牙科诊所预约管理系统&#xff08;Java SSM框架实现&#xff09…

MySQL 数据库管理入门:从创建到删除(T1) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

java_ssm64电子病历系统_r4pwo

目录 具体实现截图电子病历系统概述技术架构核心功能模块数据安全与性能优化扩展性与兼容性 系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 具体实现截图 电子病历系统概述 Java_SSM64电子病历系统基于SSM框…

终极对决:中网、麦肯锡、华与华,谁才是中国B2B企业转型的最强引擎?

在当前中国B2B企业转型的竞争中&#xff0c;中网、麦肯锡与华与华各具特色&#xff0c;形成了独特的市场格局。中网以其"B2B价值竞争模型"和数字增长系统为基础&#xff0c;致力于协助企业提高品牌定位和市场竞争力。麦肯锡则依托丰富的全球咨询经验&#xff0c;为企…

java_ssm56校园电动车租赁管理系统

目录具体实现截图摘要关键词系统所用技术介绍写作提纲源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 摘要 校园电动车租赁管理系统基于Java SSM&#xff08;SpringSpringMVCMyBatis&#xff09;框架开发&#xff0c;采用…