1A
这个设计到一个常识,如果知道能在三分钟之内解题:
相邻的两个数字的gcd肯定是1::这个没有问题,比如gcd(1,2),比如gcd(3,4)
但是我想要任何两个数字的的最大公约数为1,我们直接让这两个数字等于除以相邻的两个数字的结果就行,
结果必然是两个树的因子,两个相邻的数字的因数不可能有相同的(除了1和本身)
所以最大值不会超过三,要怀着一颗操蛋的心态观察样例,求最大值,样例当中的最大值只有三,我就要猜想最大值是不是三
2B
我用的队列,感觉非常美丽文章来源地址https://www.toymoban.com/news/detail-608761.html
#include <iostream>
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
char qh[N];
int main(){
int t;for(cin >> t;t;t --){
int hh = 0,tt = -1;
memset(qh,' ',sizeof qh);
int n;cin >> n;
string s;
cin >> s;
int l = s.size();
bool flag1 = false;
for(int i = 0;i < l;i ++){
if(s[i] == '1') flag1 = true;
if(flag1 ){//如果一出现过了
if(s[i] == '0'){
if(qh[tt] != '0') qh[++tt] = s[i];
}
else{
if(s[i] == '1'){
if(qh[tt] != '1') qh[++tt] = s[i];
}
}
}
}
// for(int i = hh;i <= tt;i ++) cout << qh[i];
// cout << endl;
while(qh[hh] == '1'){
hh ++;
}
// for(int i = hh;i <= tt;i ++) cout << qh[i];
// cout << endl;
cout << tt - hh + 1 << endl;
}
return 0;
}
文章来源:https://www.toymoban.com/news/detail-608761.html
到了这里,关于Codeforces Round 830 (Div. 2)题解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!