Codeforces 151C Win or Freeze 简单博弈+唯一分解
来源:互联网 发布:法里内利 知乎 编辑:程序博客网 时间:2024/05/17 04:38
点击打开链接
题意:给出一个数字n,n<=1e13,操作:将n变为n的某个因子(因子不包括1,n),两个聪明的玩家轮流操作,不能操作的人胜利,问1先手,是否能赢,若能则输出第一步操作
一个状态为1或者素数则为必胜,一个结点n的后继为:n的因子
若后继(因子)都为必胜态(素数)则必败
首先n用唯一分解表示为n=p1^a1 *p2^a2*...pn^an,若存在一个因子不为素数,则i>=2或者i==1&&ai>=2
若i==1&&ai>=2 则取n的一个因子 p1^2 则为必胜态
若i>=2 则取p1*p2 则也为必胜态
即存在一个因子不为素数的状态为必胜态
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N=2e7+20;const ll M=1e13;ll n,q;ll pri[N],pn=0;int vis[N];void init()//找到sqrt(M)内所有的素数 {memset(vis,-1,sizeof(vis));for(ll i=2;i*i<=M;i++){if(vis[i]==-1){pri[pn++]=i;vis[i]=1;for(ll j=i+i;j*j<=M;j+=i)vis[j]=1;}}}ll solve(){ll ans=-1;ll num=0,a;//有因子为合数则:找到两个素因子a,b.或者一个素因子的平方 for(int i=0;i<pn;i++){if(n%pri[i]==0){int cnt=0;num++;if(num==1)a=pri[i];if(num==2){ans=a*pri[i];return ans;}while(n%pri[i]==0){n/=pri[i];cnt++;if(cnt==2){ans=pri[i]*pri[i];return ans;} } }}return -1;}int main(){init();while(cin>>n){q=n;bool flag=false;int num=0; for(ll i=2;i*i<=n;i++){if(n%i==0){num++;break;}}if(num==0)//n为prime||1 {cout<<1<<endl<<0<<endl;continue;}ll ans=solve();if(ans==-1||ans==q)puts("2");else{puts("1");cout<<ans<<endl;}}return 0;}
0 0
- Codeforces 151C Win or Freeze 简单博弈+唯一分解
- 【质因数分解+简单博弈】Win or Freeze CodeForces
- CodeForces 151C Win or Freeze(简单题)
- codeforces 151C Win or Freeze
- CodeForces 150A Win or Freeze(素筛+分情况)
- 解题报告 之 CodeForces150A Win or Freeze
- Codeforces 15C Industrial Nim 简单博弈
- Codeforces 151C(分解因数)
- 01(CodeforcesC水平)CQU新生周末狂欢赛 N - Win or Freeze
- HDU 2608 - 0 or 1 (数论 + 唯一分解定理)
- codeforces C. Beaver Game 博弈
- 唯一分解
- #51 C. Pie or die (博弈)
- Codeforces Gym 100814J Game 简单博弈
- CodeForces 15C Industrial Nim (博弈)
- codeforces 15C Industrial Nim(NIM 博弈)
- Codeforces 335C More Reclamation 博弈
- Codeforces 78C Beaver Game(数论、博弈)
- javascript基础入门1
- windows下安装使用Maven
- python3学习笔记:零碎知识点
- register--皇帝身边的小太监(这样的比喻确实挺生动)
- maven学习笔记3------maven规范约束
- Codeforces 151C Win or Freeze 简单博弈+唯一分解
- 机器学习中常用算法总结
- python中类的私有成员的 name managing
- 在Mac终端编译运行cpp格式c++文件
- lvs集群简介
- jdk中的标记性接口
- 城市是否可以坐车到达问题
- 玩一玩微信公众号开发(二) 管理凭据和自定义菜单
- 简述HTTP协议