当前位置: 首页 > news >正文

胶州建网站/在线网页制作工具

胶州建网站,在线网页制作工具,网站建设发票属于 服务器,wordpress home.php题目大意:   给你一个包含n个数的数列,两个人轮流对数列进行如下操作:   选择一个质数p和一个正整数k,将数列中所有能被p^k整除的数除以p^k。   最后不能操作者负。   问先手是否有必胜策略。 思路:   显然…

题目大意:
  给你一个包含n个数的数列,两个人轮流对数列进行如下操作:
  选择一个质数p和一个正整数k,将数列中所有能被p^k整除的数除以p^k。
  最后不能操作者负。
  问先手是否有必胜策略。

思路:
  显然,结果不直接与数列中数的值有关,而与数列中每个数的质因数及其次数有关,因此我们可以将每个质因数分开考虑。
  枚举数列中出现的每一个质因数p,对数列中的数除去p^k就相当于将p对应的次数减去k。
  如果不同的数对于同一个质因数p,对应的次数相同,那么无论除去p的几次,对于这两个数的影响都是一样的。
  那么我们只需要将不同的质数作为我们的子游戏,游戏状态记录p出现次数(即,如果一个数中包含17,一个数中包含17^2,那么就记录1和2)。
  极限情况,2^31>1e9,那么对于每一个质数,我们可以用一个int类型状压记录出现次数。
  即,若状态s的第i位为1,则p^i在数列中出现。
  求SG函数的时候,我们可以发现SG函数的取值仅与出现次数,即状态s有关,而与具体是哪个质数无关。
  我们可以从s的最高位枚举,依次考虑把s在i后面的位数减掉的情况,这样,较高的次数在降次以后会加到较低的位数,这一操作可以用位运算(x%si)|(x/si)表示。
  对于边界情况,s=1时,表示数列中已经没有这样的质因数,SG值显然是0。

 1 #include<cmath>
 2 #include<cstdio>
 3 #include<cctype>
 4 #include<vector>
 5 #include<cstring>
 6 #include<ext/hash_map>
 7 inline int getint() {
 8     register char ch;
 9     while(!isdigit(ch=getchar()));
10     register int x=ch^'0';
11     while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0');
12     return x;
13 }
14 const int N=100;
15 __gnu_cxx::hash_map<int,int> sg;
16 int a[N];
17 inline int count(int &x,const int &p) {
18     int ret=0;
19     while(!(x%p)) {
20         ret++;
21         x/=p;
22     }
23     return ret;
24 }
25 int getsg(const int x) {
26     if(sg.count(x)) {
27         return sg[x];
28     }
29     if(x==1) return sg[x]=0;
30     int si=1<<30;
31     while(!(x&si)) si>>=1;
32     int mex[10000];
33     memset(mex,0,sizeof mex);
34     while(si!=1) {
35         mex[getsg((x%si)|(x/si))]=x;
36         si>>=1;
37     }
38     int tmp=0;
39     while(mex[tmp]==x) tmp++;
40     return sg[x]=tmp;
41 }
42 int main() {
43     int n=getint();
44     for(int i=0;i<n;i++) {
45         a[i]=getint();
46     }
47     int ans=0;
48     for(int i=0;i<n;i++) {
49         int tmp=a[i];
50         for(int j=2;j<=sqrt(tmp);j++) {
51             if(!(tmp%j)) {
52                 int s=0;
53                 for(int k=0;k<n;k++) {
54                     s|=1<<count(a[k],j);
55                 }
56                 ans^=getsg(s);
57             }
58         }
59         if(a[i]!=1) {
60             int p=a[i];
61             int s=0;
62             for(int k=0;k<n;k++) {
63                 s|=1<<count(a[k],p);
64             }
65             ans^=getsg(s);
66         }
67     }
68     puts(ans?"Mojtaba":"Arpa");
69     return 0;
70 }

 

转载于:https://www.cnblogs.com/skylee03/p/7612672.html

http://www.lbrq.cn/news/1602577.html

相关文章:

  • android源码下载网站/南宁推广公司
  • 火车头wordpress自动排版/网站推广和网站优化
  • wordpress做导语/seo搜索引擎优化技术教程
  • 网站不用了怎么办/电商运营公司简介
  • 网站建设工作经历/百度帐号登录个人中心
  • 专业做网站公司怎么样/关键词文案生成器
  • lol网站怎么做/网站软文代写
  • phpbb wordpress/seo初级入门教程
  • 网站备案域名怎么买/深圳seo网络推广
  • 郴州做网站的/危机舆情公关公司
  • 做网站学什么软件/汽车推广软文
  • 彩票开奖网站开发/深圳网络营销模式
  • 北京市建设网站/免费推广的平台
  • 做网站需要学些什么条件/绍兴seo优化
  • 六安网站建设找哪家/友情链接平台站长资源
  • 淘宝做的代码能在其他网站用吗/网站的seo是什么意思
  • 好看的网站建设/长春网站优化流程
  • b2b2c网站开发/伟哥seo博客
  • 子网站怎么建设/关键词查询
  • 个人工商户做网站备案/莆田网站建设优化
  • 网站建设 价格/网络推广如何收费
  • 个人网站可以做音乐下载网/合肥网站推广助理
  • 网站下载文件怎么做/百度搜索网
  • 专做定制旅游网站有哪些/微信广告平台
  • 建设局网站首页/整站seo定制
  • 网站开发项目经理职责/百度教育小程序
  • 智慧旅游网站开发与设计/排名优化百度
  • 贵港网站建设公司/seo网页优化服务
  • 怎么看一个网站做得好不好/百度客服电话是多少
  • 网站建设新闻资讯/安卓优化大师官网下载
  • 机器学习 入门——决策树分类
  • 向量空间模型
  • [spring-cloud: 负载均衡]-源码分析
  • HCIE-Datacom题库_07_设备【道题】
  • 【学习笔记】MySQL技术内幕InnoDB存储引擎——第7章 事务
  • 中州养老项目:Mybatis自动填充拦截器