CF1392A Omkar and Password思路
可以说,这道题目是一道很重要的规律题。
没事闲的看犇的时候看到了这道题目,还是写一篇题解来一下吧,望通过,这样我就能橙了 qwq
首先呢,上述说过了是规律题,得到的规律应该是这样的:
当所以数相等时,数的个数就是最后数列的长度,如果并不是所有数都相等,则 为最后的长度。
可以先设这一个为基本的猜想,我要讲的是证明:
都相同时
请看题目中说了
对于两个相邻的且不相同的数,你可以将他们合并起来,即将这两个数替换成它们的和。
因此,可以知道的是,相同的时候一个都合并不了喽 qwq
至少一个不同
如下面的数,可见一定是一个最不利的 qwq:
如果这列数中有无数多个 (且假定只有开头的一个 ),那么,我们可以先将两个不同的(即 和 )进行第一次合并,接着,可以再将两个不同的数(即 和 )进行一次合并,之后我们可以发现,每一次合并之后,都会出现一个 不同 的数,而这个不同的数又可以继续合并……因此,最终,不论多长的数,都能化简为所有这些数的和!
上述是验证的过程,下面是全部代码 qwq:
#include <iostream>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
bool flag = 1;
int m;
cin >> m;
int flag2 = m;
for (int i = 2; i <= n; i++) {
int a;
cin >> a;
if (a != m) {
flag = 0;
}
}
if (flag == 0) {
cout << 1 << endl;
}
else {
cout << n << endl;
}
}
}
这是本题的思路,希望对您有帮助 qwq
本文作者:zsdqwq
本文链接:https://www.cnblogs.com/wo-de-bo-ke-wo-zuo-zhu/p/16000442.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步