CF1931E Anna and the Valentine's Day Gift 题解
简单博弈(?,橙吧。
先考虑 Anna 的最佳操作。
Anna 要使这个数的位数尽可能小,那么能使位数变小的,只有去掉后面的
那么我们只需先算出所有数的初始总位数和
注意:如果最终位数
时间复杂度
#include <bits/stdc++.h>
using namespace std;
int a[200005],zeronum[200005];
int main() {
int T; cin >> T;
while(T--) {
memset(zeronum,0,sizeof zeronum);
int n,m; cin >> n >> m;
int siz = 0;
for(int i = 1;i <= n;i++) {
cin >> a[i];
int cur = a[i];
while(cur) {
siz++;
cur /= 10;
}
}
if(siz < m) {
cout << "Anna" << endl;
continue;
}
for(int i = 1;i <= n;i++) {
while(a[i] % 10 == 0) {
zeronum[i]++;
a[i] /= 10;
}
}
sort(zeronum+1,zeronum+n+1,greater<int>());
for(int i = 1;i <= n;i += 2) siz -= zeronum[i];
// cout << siz;
if(siz <= m) cout << "Anna" << endl;
else cout << "Sasha" << endl;
}
return 0;
}
AC Record