Codeforces Round #432 Div. 1 C. Arpa and a game with Mojtaba
来源:互联网 发布:通利琴行淘宝店铺 编辑:程序博客网 时间:2024/05/17 15:37
首先容易想到,每种素数是独立的,相互sg就行了
对于一种素数来说,按照的朴素的mex没法做。。。
所以题解的简化就是数位化
多个数同时含有的满参数因子
之后就是模拟,牛逼的思路
#include<iostream>#include<map>#include<iostream>#include<cstring>#include<cstdio>#include<set>#include<vector>#include<queue>#include<stack>#include<algorithm>using namespace std;typedef long long ll;const int N = 1e5+5;#define MS(x,y) memset(x,y,sizeof(x))#define MP(x, y) make_pair(x, y)const int INF = 0x3f3f3f3f;int prime[N];int isprime[N]; int tot = 0;int n;map<int, int> mp;map<int, int> dp;map<int, int> ::iterator it;int solve(int x){ if(dp.find(x) != dp.end()) return dp[x]; int mex[35]; MS(mex, 0); for(int i = 0; x >> i; ++i) { int tt = solve( (x >> (i + 1)) | ( ((1<<i) - 1) & x ) ); mex[tt] ++; } for(int i = 0; i < 35; ++i) { if(!mex[i]) { dp[x] = i; return i; } }}int main() { for(int i = 2; i < N; ++i) { if(isprime[i] == 0) { prime[++tot] = i; for(int j = 2*i; j < N; j += i) { isprime[j] ++; } } } while(~scanf("%d", &n)) { mp.clear(); for(int i = 0; i < n; ++i) { int a; scanf("%d", &a); for(int j = 1; j <= tot; ++j) { if(a % prime[j] == 0) { int cnt = 0; while(a % prime[j] == 0) a /= prime[j], cnt ++; mp[prime[j]] |= 1<<(cnt-1); if(a == 1) break; } } if(a != 1) { mp[a] |= 1; } } int ans = 0; for(it = mp.begin(); it != mp.end(); ++it) { dp.clear(); ans ^= solve(it -> second); } if(ans) printf("Mojtaba\n"); else printf("Arpa\n"); } return 0;}
阅读全文
0 0
- Codeforces Round #432 Div. 1 C. Arpa and a game with Mojtaba
- Codeforces Round #432 (Div. 2) (Codeforces 850C) E. Arpa and a game with Mojtaba 博弈+状态压缩
- 解题报告:Codeforces Round #432 (Div. 2) E.Arpa and a game with Mojtaba (博弈)
- Codeforces Round #432 (Div. 2) D. Arpa and a list of numbers E. Arpa and a game with Mojtaba
- Codeforces Round #432 C. Arpa and a game with Mojtaba 裸博弈+质数拆解
- Codeforces 851E-Arpa and a game with Mojtaba
- codeforces 850C Arpa and a game with Mojtaba(博弈,bitmask)
- Codeforces Round #432 (Div. 1): B. Arpa and a list of numbers
- Codeforces Round #432 (Div. 1) B. Arpa and a list of numbers
- Codeforces 851A && Round #432 Div. 2 A. Arpa and a research in Mexic
- Codeforces Codeforces Round #432 (Div. 2 D ) Arpa and a list of numbers 爆搜+剪枝
- Codeforces Codeforces Round #432 (Div. 2 D ) Arpa and a list of numbers
- Codeforces Round #258 (Div. 2)1A Game With Sticks
- 解题报告:Codeforces Round #432 (Div. 2) D. Arpa and a list of numbers 暴力
- Codeforces Round #432 (Div. 2) D 850B Arpa and a list of numbers(gcd 枚举)
- Codeforces 851D Arpa and a list of numbers Round #432 (Div. 2
- Codeforces Round #383 (Div. 1) 741A Arpa's loud Owf and Mehrdad's evil plan
- Codeforces Round #383 (Div. 1) C. Arpa’s overnight party and Mehrdad’s silent entering
- MySQL中my.ini的位置
- CCF计算机软件能力认证模拟试题参考答案(JAVA)(201703 1+2)
- Android热修复原理
- 低通滤波器1
- Linux下串口编程入门
- Codeforces Round #432 Div. 1 C. Arpa and a game with Mojtaba
- C51单片机硬件基础
- 剑指offer--替换空格(java)
- Java中的泛型
- Oracle SQL命令
- 9-7 (空间推想,思路,图论水)
- Unity3D-塔防游戏项目主要源码(游戏主控器脚本)
- 对一阶二阶低通数字滤波器的理解(基于匿名微型六轴)
- GDI+的使用