牛客IOI周赛20-普及组
完全数
牛客的签到题,最暴力的做法就是把数每个因子罗列出来,但是这样只有60的暴力分,我们从题目的数据可以看到
数据范围是1e7的,在学习素数的时候我们知道一个因子就能推出另一个因子,所以我们没必要从1判断到n-1
直接i*i > n;
for(int i = 0; i < n; ++i) {
cin>>c;
if(c == 'Z') {
if(V.size())//当V不为空的时候才进行撤销操作
V.pop_back();
} else {
V.push_back(c);
}
}
int x,y;
x = y = 0;
for(int i = 0; i < V.size(); ++i) {//直接模拟
if(V[i] == 'W') {
y++;
} else if(V[i] == 'A') {
x--;
} else if(V[i] == 'S') {
y--;
} else if(V[i] == 'D') {
x++;
}
}
cout a1>>b1>>c1;
cin>>a2>>b2>>c2;
int win1,win2,win3;//这是牛牛可能会赢的场数(分别对应着石头、剪刀、布)
long long sum = 0;
win1 = min(a1,b2);
win2 = min(b1,c2);
win3 = min(c1,a2);
sum += win1 * 2;
sum += win2 * 2;
sum += win3 * 2;
a1 -= win1;//这里分别减去牛牛赢的场数
b2 -= win1;
b1 -= win2;
c2 -= win2;
c1 -= win3;
a2 -= win3;
sum += min(a1,a2) + min(b1,b2) + min(c1,c2);//最后再把可能平局的场数加起来就好啦
cout
1665836431
查看更多评论