D. Deleting Divisors
1.E. Arranging The Sheep2.C. Team3.C. RationalLee4.B. Preparing Olympiad5.B. Find The Array6.E. Accidental Victory7.A. Learning Languages8.A. k-th divisor9.B. Quasi Binary10.蓝桥杯-地宫取宝11.D. Divide by three, multiply by two12.D. Game With Array13.B. Composite Coloring14.洛谷 P1204 [USACO1.2] 挤牛奶Milking Cows15.洛谷 P3353 在你窗外闪耀的星星16.洛谷 P8818 [CSP-S 2022] 策略游戏17.Educational Codeforces Round 164 (Rated for Div. 2)18.E. Chain Reaction19.Manthan, Codefest 18 (rated, Div. 1 + Div. 2) D. Valid BFS?20.D. Distance in Tree21.D. Multiplication Table22.C. Mixing Water23.B. Greg and Graph24.D. Another Problem About Dividing Numbers25.Acwing 143. 最大异或对26.Acwing 3485. 最大异或和27.C. Checkposts28.E. Lomsat gelral29.D. Powerful array
30.D. Deleting Divisors
31.Codeforces Round 950 (Div. 3)32.Codeforces Round 951 (Div. 2)33.SuntoryProgrammingContest2024(AtCoder Beginner Contest 357)34.Codeforces Round 952 (Div. 4)35.AtCoder Beginner Contest 35836.B. Modulo Sum37.D. Soldier and Number Game38.AtCoder Beginner Contest 35939.Codeforces Round 954 (Div. 3)40.Codeforces Round 955 (Div. 2, with prizes from NEAR!)41.AtCoder Regular Contest 18042.D - Ghost Ants43.AtCoder Beginner Contest 361)44.Codeforces Round 957 (Div. 3)45.E. Decode46.Educational Codeforces Round 168 (Rated for Div. 2)47.B. Parity and Sum48.P1972 [SDOI2009] HH的项链49.Codeforces Round 966 (Div. 3) VP50.https://codeforces.com/contest/2004/problem/B51.C. Splitting Items52.D. Colored Portals53.Codeforces Round 967 (Div. 2)54.D. Determine Winning Islands in Race55.C. Turtle and Good Pairs56.Codeforces Round 970 (Div. 3)(VP)57.G. Sakurako's Task58.Codeforces Round 971 (Div. 4)59.C. Lazy Narek60.B. Regular Bracket Sequence61.C. News Distribution62.B. Karen and Coffee63.G. 2^Sort64.C. Johnny and Another Rating Drop65.A. Greg and Array66.D2. Magic Powder - 267.C. Schedule Management68.C. Constanze's Machine69.C. Soldier and Cardshttps://codeforces.com/contest/1537/problem/D
题意:给定数n,alice和bob博弈,alice先手。每次操作可以减去当前n的一个因子,并且该因子不能为n和1。问谁必胜。
思路:策略分析。基础分析:如果n是奇数,那么没有偶数因子。如果n是偶数,可能有偶数因子和奇数因子,如果只有偶数因子,n是2的整数次方。如果n是奇数,n要么是质数,要么一次操作后变成偶数。所以如果先手alice是奇数,必败。考虑偶数的情况,如果有奇数因子,那么一次操作后变成奇数,此时相当于奇数先手,所以bob必败。如果只有偶数因子,那么每次操作必须减去(n / 2)这个因子,假如减去了n / 4这个因子,可能会出现包含了奇数的偶数,那么此时就处于一个必败态了,比如8 - 2 = 6。所以此时看谁先拿到质因子2,谁拿到质因子2,谁就必败,统计二进制下末尾0的数量。如果是奇数个bob必胜。
总结:很巧妙的分析题,需要分析每种情况才行,一开始完全没有任何想法,纯纯的暴力找了个没逻辑的规律,不出意外tc2就挂了。
/*
偶数,有奇因子,那么alice必胜。
偶数,没有奇因子,说明是2的整数次方。此时的策略必须是减去最大的因子,(1 << (k -1)),否则相减后出现奇数因子必败。
所以该情况下看谁拿到2,谁输。
奇数,必败。
*/
void solve(){
int n;
cin >> n;
if (n & 1){
cout << "Bob\n";
}
else{
if (__builtin_popcount(n) == 1 && (__builtin_ctz(n) & 1)){
cout << "Bob\n";
}
else{
cout << "Alice\n";
}
}
}
合集:
记录随手刷过的编程题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通