Vijos P1554 硬币游戏(ZJOI2009)题解
来源:互联网 发布:七月算法 编辑:程序博客网 时间:2024/05/21 09:17
从网上摘抄的代码,但研究了半天不知道原理,但仍在此放出,希望各位帮忙解释一下原理。
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define M 100100using namespace std;typedef long long ll;int n,tot;ll m;char a[2][M],ans[M<<1];int main(){ int x; cin>>n>>m; for(int i=1;i<=n;i++) scanf("%d",&x),a[0][i]=x-1; for(ll j=2;j<=m;j<<=1) { if(m & j) { ++tot; for(int i=1;i<=n;i++) { int x=(i+(j>>1)%n+n-1)%n+1; int y=(i-(j>>1)%n+n-1)%n+1; a[tot&1][i]=a[~tot&1][x]^a[~tot&1][y]; } } } for(int i=1;i<=n;i++) ans[i+i-1]=a[tot&1][i]; if(m & 1) { for(int i=1;i<=n;i++) ans[i<<1]=ans[i+i-1]^ans[i==n?1:i<<1|1]; for(int i=1;i<=n;i++) ans[i+i-1]=-1; } else { for(int i=1;i<=n;i++) ans[i+i]=-1; } for(int i=1;i<=n<<1;i++) printf("%d%c",ans[i]+1,i==n+n?'\n':' ');}
0 0
- Vijos P1554 硬币游戏(ZJOI2009)题解
- bzoj1411: [ZJOI2009]硬币游戏
- bzoj1411: [ZJOI2009]硬币游戏
- bzoj1411 [ZJOI2009]硬币游戏
- bzoj1411: [ZJOI2009]硬币游戏
- BZOJ 1411 ZJOI2009 硬币游戏 递推
- bzoj 1411: [ZJOI2009]硬币游戏 找规律
- 1411: [ZJOI2009]硬币游戏【xjb找规律
- Vijos 1554题:硬币游戏
- bzoj1411: [ZJOI2009]硬币游戏 找规律神题
- Vijos P1941 猜谜游戏(AHOI2015)题解
- 51Nod1381 硬币游戏(概率+题解)
- 硬币题解
- 【ZJOI2009】染色游戏
- 硬币游戏
- 硬币游戏
- 硬币游戏
- ★【博弈论】【ZJOI2009】染色游戏
- 关于Red Hat 企业版下输入ifconfig显示not found问题解决办法
- 【数据结构 链表的应用】一元多项式相加及相乘 和对问题的分析
- Codeforces Round #302 (Div. 2) E. Remembering Strings(状压dp)
- YUM软件仓库学习
- 算法学习-2
- Vijos P1554 硬币游戏(ZJOI2009)题解
- ACdream的高速公路(暴力)
- struts2中文件上传与错误国际化
- java 构造方法
- 劳伤解(二) 阴阳
- X86-64寄存器和栈帧
- awk多维数组
- OCday3 初始化方法, 便利构造器, 继承
- 【面试题】实现memcpy函数