比赛的时候都推出来了和 质因子的指数和有关,硬是没做出来QWQ,我傻死算了

但其实这是一个结论题,因为这本来就是阶梯NIM游戏的模型。阶梯NIM游戏是指,有 n+1 阶台阶(0 ~ n),每阶上都有若干堆石子,每次操作从第i(i>0)阶的某一堆拿不超过这一堆数量的石子放到第i-1阶的某一堆中,不能操作者输。

显然普通的nim游戏就是1阶nim,拿到0阶就相当于扔了。、。。。

虽然我也不知道是怎么证的,但是结论就是: 当前游戏是必败态当且仅当 所有奇数阶上的每堆石子的异或和为0.

所以这个题xjb讨论计数一下就好啦QWQ,(我讨厌结论题QWQ)

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1000000,ha=998244353;
inline int add(int x,int y){ x+=y; return x>=ha?x-ha:x;}
inline void ADD(int &x,int y){ x+=y; if(x>=ha) x-=ha;}
inline int ksm(int x,int y){
int an=1;
for(;y;y>>=1,x=x*(ll)x%ha) if(y&1) an=an*(ll)x%ha;
return an;
} int zs[maxn/5],num[maxn+5],low[maxn+5];
int t,n,a[maxn+5],ans,pr[maxn+5];
bool v[maxn+5]; inline int read(){
int x=0; char ch=getchar();
for(;!isdigit(ch);ch=getchar());
for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';
return x;
} inline void init(){
low[1]=1; for(int i=2;i<=maxn;i++){
if(!v[i]) zs[++t]=i,low[i]=pr[i]=i,num[i]=1; for(int j=1,u;j<=t&&(u=zs[j]*i)<=maxn;j++){
v[u]=1,num[u]=num[i]+1,pr[u]=zs[j]; if(!(i%zs[j])){
low[u]=low[i]*zs[j];
break;
} low[u]=zs[j];
}
}
} inline void solve(){
int tot=0,can=0,Xor=0; for(int i=1;i<=n;i++) if(num[i]&1) Xor^=a[i]; for(int i=2,now,to;i<=n;i++){
now=i; for(;now!=1;now/=low[now]){
to=i/pr[now];
ADD(tot,add(a[i],0)); if(num[i]&1){
if((Xor^a[i])<=a[i]) ADD(can,1);
}
else{
if((Xor^a[to])<=a[i]+a[to]&&(Xor^a[to])>=a[to]) ADD(can,1);
}
}
} ans=can*(ll)ksm(tot,ha-2)%ha;
} int main(){
init(); while(scanf("%d",&n)==1){
for(int i=1;i<=n;i++) a[i]=read(); solve(); printf("%d\n",ans);
} return 0;
}

  

洛谷 - Sdchr 的邀请赛 T1 取石子的更多相关文章

  1. 洛谷 P4018 Roy&October之取石子

    洛谷 P4018 Roy&October之取石子 题目背景 Roy和October两人在玩一个取石子的游戏. 题目描述 游戏规则是这样的:共有n个石子,两人每次都只能取 p^kpk 个(p为质 ...

  2. 洛谷P4018 Roy&October之取石子

    题目背景 \(Roy\)和\(October\)两人在玩一个取石子的游戏. 题目描述 游戏规则是这样的:共有\(n\)个石子,两人每次都只能取\(p^k\)个(\(p\)为质数,\(k\)为自然数,且 ...

  3. 洛谷——P4018 Roy&October之取石子

    P4018 Roy&October之取石子 题目背景 Roy和October两人在玩一个取石子的游戏. 题目描述 游戏规则是这样的:共有n个石子,两人每次都只能取p^kpk个(p为质数,k为自 ...

  4. 洛谷P4860 Roy&October之取石子II 题解 博弈论

    题目链接:https://www.luogu.org/problem/P4860 和<P4018 Roy&October之取石子>一样的推导思路,去找循环节. 可以发现:只要不能被 ...

  5. 洛谷P4018 Roy&October之取石子 题解 博弈论

    题目链接:https://www.luogu.org/problem/P4018 首先碰到这道题目还是没有思路,于是寻思还是枚举找一找规律. 然后写了一下代码: #include <bits/s ...

  6. 洛谷 - Sdchr 的邀请赛 T4 信息传递

    (乱搞艹爆正解系列) 对不起,由于博主太弱了,并不会正解的多项式exp(甚至多项式exp我都不会2333). 只能来说一说我是怎么乱搞的啦QWQ 首先这个题最关键的性质是: 一个在原置换 g 中长度为 ...

  7. 洛谷【P1004】方格取数

    浅谈\(DP\):https://www.cnblogs.com/AKMer/p/10437525.html 题目传送门:https://www.luogu.org/problemnew/show/P ...

  8. 洛谷大宁的邀请赛~元旦祭F: U17264 photo(线段树)

    标程的写法稍微有点麻烦,其实不需要平衡树也是可以做的. 线段树上维护从左端点开始最远的有拍照的长度,以及区间的最大值. 考虑两段区间合并的时候,显然左区间必须取,右区间的第一个比左区间最大值大的数开始 ...

  9. 洛谷P2744 [USACO5.3]量取牛奶Milk Measuring

    题目描述 农夫约翰要量取 Q(1 <= Q <= 20,000)夸脱(夸脱,quarts,容积单位--译者注) 他的最好的牛奶,并把它装入一个大瓶子中卖出.消费者要多少,他就给多少,从不有 ...

随机推荐

  1. 2016广东工业大学校赛 E题 GDUT-oj1173

    Problem E: 积木积水 Description 现有一堆边长为1的已经放置好的积木,小明(对的,你没看错,的确是陪伴我们成长的那个小明)想知道当下雨天来时会有多少积水.小明又是如此地喜欢二次元 ...

  2. POJ2236:Wireless Network(并查集)

    Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 39772   Accepted: 164 ...

  3. lwIP内存管理机制

    lwip的内存管理机制,我们以enet_lwip这个例程为例. 在使用lwip的时候,我们可以使用两种形式的内存,一种是heap(mem.c文件-mem_malloc()),一种是pool(memp. ...

  4. Java super和this

    this this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. this的用法在java中大体可以分为3种: 1.普通的直接引用 这种就不用讲了,this相当于是指向当前对象本 ...

  5. Rem与em的简单理解

    Rem与em的简单理解 Em单位与像素px的转换 所得的像素值 = 当前元素的font-size * em的值 比如:div的font-size:12px 10em等同于120px 12*10 =12 ...

  6. 逐步实现python版wc命令

    Python 如何处理管道输入输出 sys.stdin 等于打开了一个文件对象,所有输入的文件都会写入到标准输入文件中(键盘) sys.stdout 等于打来了一个文件对象,使用.write()把信息 ...

  7. ios网络开发 网络状态检查

    http://www.cnblogs.com/hanjun/archive/2012/12/01/2797622.html 网络连接中用到的类: 一.Reachability 1.添加 Reachab ...

  8. tmux下vim颜色不正常问题

    在解决了tmux下,make menuconfig颜色不正常问题https://www.cnblogs.com/zqb-all/p/9702582.html后,引入了新的问题,vim颜色错乱. 尝试了 ...

  9. 最简单的windows平台Git服务器---Gitstack 【转】

    转自:http://www.360doc.com/content/12/0503/11/1016783_208316518.shtml 目前在windows平台上的git服务器大多数采用CopSSH+ ...

  10. 用java实现word转html

    由于项目需要,要完成将上传的word文件转成html文件的功能.在网上搜了一下,大致有3种方法:1.用jacob实现 2.用poi实现 3.用openoffice实现. 从网上来看好像jacob用的人 ...