BZOJ 3576 江南乐
http://www.lydsy.com/JudgeOnline/problem.php?id=3576
思路:由于数字巨大,因此N^2异或做法是过不了的,我们考虑将n个石子分成i堆,那么会有n%i堆n/i+1的石子,i-n%i堆n/i的石子。如果两个堆的石子数相同,那么他们异或起来就为0,因此,这两种石子堆,我们可以看做:每种至多只有1堆。这样就可以枚举n/i,然后可以避免计算很多重复的部分,时间复杂度为N^1.5
1 #include<algorithm> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 #include<iostream> 6 #define M 100100 7 int T,F,n,sg[2000005],v[2000005],ans; 8 int read(){ 9 int t=0,f=1; 10 char ch=getchar(); 11 while (ch<'0'||ch>'9') {if (ch=='-') ch=-1;ch=getchar();} 12 while ('0'<=ch&&ch<='9'){t=t*10+ch-'0';ch=getchar();} 13 return t*f; 14 } 15 void init(){ 16 for (int i=0;i<F;i++) sg[i]=0; 17 for (int i=F;i<=100000;i++){ 18 for (int j=2,pos=0;j<=i;j=pos+1){ 19 pos=i/(i/j);int k=i/j; 20 int nk1=i%j,nk=j-nk1; 21 v[sg[(nk&1)*(k)]^sg[(nk1&1)*(k+1)]]=i; 22 if (j+1<=std::min(pos,i)){ 23 nk1=i%(j+1),nk=j+1-nk1; 24 v[sg[(nk&1)*(k)]^sg[(nk1&1)*(k+1)]]=i; 25 } 26 } 27 for (int j=0;;j++) 28 if (v[j]!=i){ 29 sg[i]=j; 30 break; 31 } 32 } 33 } 34 int main(){ 35 T=read();F=read(); 36 init(); 37 while (T--){ 38 n=read(); 39 ans=0;int x; 40 for (int i=1;i<=n;i++) 41 x=read(),ans^=sg[x]; 42 if (!T) printf("%d\n",(!ans)?0:1); 43 else printf("%d ",(!ans)?0:1); 44 } 45 }
转载于:https://www.cnblogs.com/qzqzgfy/p/5592057.html
BZOJ 3576 江南乐相关推荐
- 【bzoj3576】 Hnoi2014—江南乐
http://www.lydsy.com/JudgeOnline/problem.php?id=3576 (题目链接) 题意 给出一个数$F$,然后$n$堆石子,每次操作可以把一堆不少于$F$的石子分 ...
- P3235-[HNOI2014]江南乐【整除分块,SG函数】
正题 题目链接:https://www.luogu.com.cn/problem/P3235 题目大意 TTT组游戏,固定给出FFF.每组游戏有nnn个石头,每次操作的人可以选择一个数量不少于FFF的 ...
- 【BZOJ3576】江南乐,博弈
传送门 思路: 很厉害的一道博弈 虽说是暴力求SG函数,但是要加入分块优化 如果说直接按照规则求的话是O(n2)O(n^2)的 (这也是我会的--) 但是注意到⌊ni⌋⌊\frac n i⌋这个神奇的 ...
- Bzoj3576 [Hnoi2014]江南乐
Time Limit: 30 Sec Memory Limit: 512 MB Submit: 1555 Solved: 552 Description 小A是一个名副其实的狂热的回合制游戏玩家. ...
- OSChina 周六乱弹 —— 老用户与狗
2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单(2018)请戳(这里) [今日歌曲] @yijiangxiyang :如今却忆江南乐,当时年少春衫薄.分享杨千 ...
- 科大星云诗社动态20210329
[每日一诗] 菩萨蛮(其三) 韦庄 如今却忆江南乐,当时年少春衫薄.骑马倚斜桥,满楼红袖招. 翠屏金屈曲,醉入花丛宿.此度见花枝,白头誓不归. 词人所写的既是跟一个现实的女子离别的相思怀念,也可能是暗 ...
- 十年磨一剑,霜刃未曾试(纪念最爱——加内特)
十年磨一剑,霜刃未曾试 空破天狼,近天狼 艰难的童年:梦回 1976 1976年5月19日,加内特出生在南卡罗莱纳一个叫毛丁的小镇.父母在他很小的时候,就分道扬镳.加内特跟着母亲过,但她没有太多能力来 ...
- 陌上谁家年少,足风流
转自:http://mxjz219.blog.sohu.com/25481441.html 春日游,杏花插满头.陌上谁家年少,足风流.妾拟将身嫁与,一生休,纵被无情弃,不能羞. 在唐五代词中,我最爱的 ...
- # HNOI2012 ~ HNOI2018 题解
HNOI2012 题解 [HNOI2012]永无乡 Tag:线段树合并.启发式合并 联通块合并问题. 属于\(easy\)题,直接线段树合并 或 启发式合并即可. [HNOI2012]排队 Tag:组 ...
最新文章
- Java项目:课程资源管理+在线考试平台(java+SSH+mysql+maven+tomcat)
- datagrid如何获取一行数据中的某个字段值_使用Mysql 数据库 新手常见问题
- Hive 终于等来了 Flink
- 机器学习在高德起点抓路中的应用实践
- [CQOI2014]通配符匹配
- 三天学好ADO(转)
- java正方形个圆形面积_java计算图形面积(圆形,正方形, 长方形).pptx
- LeetCode 5354. 通知所有员工所需的时间
- 安装完python怎么打开-安装python后如何通过Python打开网页
- 页面加载之window.onload=function(){} 和 $(function(){})的区别
- Linux内核编程(1)
- CAN、CAN FD
- 阿里巴巴内部面试资料
- 基于arduino的WiFi无线传输
- 2019 ICPC 上海站网络赛 K.Peekaboo (圆上整点)
- 智加助力解放完成“自动变道”国标验证,唯一量产自动驾驶重卡过考
- 斐波那契数列 - 递推公式及通项公式 代码
- 2020年度开发者工具Top 100名单!
- 《O N E 影视厅》管理系统——WAMP架构win10+apache+mysql+php
- buuctf web [GXYCTF2019]Ping Ping Ping(呜呜呜做个题都要被骂)