CF2259B Minus Two
题目链接Problem - 2259B - Codeforces我的解答#define _CRT_SECURE_NO_WARNINGS #includeiostream #includestdio.h using namespace std; int main() { int t; cin t; int jishu 0, oushu 0; while(t--) { int n; cin n; int arr[3] { 0 }; while (n--) { int x; cin x; if (x % 2 ! 0) arr[1]; else { if ((x % 4) 0) arr[2]; else arr[0]; } } int max arr[0]; for (int i 0; i 3; i) { if (arr[i] max) max arr[i]; } cout max \n; } return 0; }思路可以发现将操作次数拉至无限大时所有数都只会剩下012然后奇数最后结果一个为1且不只要为1以后永远为1但偶数又得分两种情况讨论我这一轮是2但下一轮可能就是0了其他的偶数可能都不同步出现了“摇摆”这也是不能暴力只分奇数偶数来做的原因如何判断一个偶数属于2还是0系列就要mod4最后看看哪一组数最多就好了这就是代码整体思路除了我可能写得比较臃肿之外也是最优解了