传送门

思路:
很厉害的一道博弈
虽说是暴力求SG函数,但是要加入分块优化
如果说直接按照规则求的话是O(n2)O(n^2)的
(这也是我会的……)
但是注意到⌊ni⌋⌊\frac n i⌋这个神奇的东西
可以联想到分块处理,因为这玩意的取值只有2n−−√2\sqrt n种
然后我的水平也就仅到于此了……
求了几次都不对……
实际上

把n个石子分成i堆 当n / i == n / (i + 2) (n / i 为分出来以后每堆的最小石子数)时sg值异或和结果相同

这就很好了
也就是说只要计算一次奇数一次偶数就可以解决问题了
注意要求n/i的取值相同……所以算n/(i+1)时判断一下
同时最好边求边做,别一口气全求出来,不然会T……
代码:

#include<cstdio>
#include<cstring>
using namespace std;
int T,F,n;
int a[105],sg[100005],c[100005];
int in()
{int t=0;char ch=getchar();while (ch>'9'||ch<'0') ch=getchar();while (ch>='0'&&ch<='9') t=(t<<1)+(t<<3)+ch-48,ch=getchar();return t;
}
int SG(int x)
{if (x<F) return sg[x]=0;if (sg[x]!=-1) return sg[x];for (int a,b,t,i=2;i<=x;i=x/(x/i)+1){a=x%i,b=i-a,t=0;if (b&1) t^=SG(x/i);if (a&1) t^=SG(x/i+1);c[t]=x;if (x/(x/i)>i){++i,a=x%i,b=i-a,t=0;if (b&1) t^=SG(x/i);if (a&1) t^=SG(x/i+1);c[t]=x;}}for (int i=0;;++i)if (c[i]!=x) return sg[x]=i;
}
main()
{memset(sg,-1,sizeof(sg));T=in();F=in();for (;T;--T){n=in();int ans=0;for (int i=1;i<=n;++i)a[i]=in(),ans^=SG(a[i]);if (ans) putchar('1');else putchar('0');if (T>1)putchar(' ');}
}

【BZOJ3576】江南乐,博弈相关推荐

  1. 【bzoj3576】 Hnoi2014—江南乐

    http://www.lydsy.com/JudgeOnline/problem.php?id=3576 (题目链接) 题意 给出一个数$F$,然后$n$堆石子,每次操作可以把一堆不少于$F$的石子分 ...

  2. Bzoj3576 [Hnoi2014]江南乐

    Time Limit: 30 Sec  Memory Limit: 512 MB Submit: 1555  Solved: 552 Description 小A是一个名副其实的狂热的回合制游戏玩家. ...

  3. BZOJ 3576 江南乐

    http://www.lydsy.com/JudgeOnline/problem.php?id=3576 思路:由于数字巨大,因此N^2异或做法是过不了的,我们考虑将n个石子分成i堆,那么会有n%i堆 ...

  4. P3235-[HNOI2014]江南乐【整除分块,SG函数】

    正题 题目链接:https://www.luogu.com.cn/problem/P3235 题目大意 TTT组游戏,固定给出FFF.每组游戏有nnn个石头,每次操作的人可以选择一个数量不少于FFF的 ...

  5. OSChina 周六乱弹 —— 老用户与狗

    2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单(2018)请戳(这里) [今日歌曲] @yijiangxiyang :如今却忆江南乐,当时年少春衫薄.分享杨千 ...

  6. 科大星云诗社动态20210329

    [每日一诗] 菩萨蛮(其三) 韦庄 如今却忆江南乐,当时年少春衫薄.骑马倚斜桥,满楼红袖招. 翠屏金屈曲,醉入花丛宿.此度见花枝,白头誓不归. 词人所写的既是跟一个现实的女子离别的相思怀念,也可能是暗 ...

  7. 十年磨一剑,霜刃未曾试(纪念最爱——加内特)

    十年磨一剑,霜刃未曾试 空破天狼,近天狼 艰难的童年:梦回 1976 1976年5月19日,加内特出生在南卡罗莱纳一个叫毛丁的小镇.父母在他很小的时候,就分道扬镳.加内特跟着母亲过,但她没有太多能力来 ...

  8. 陌上谁家年少,足风流

    转自:http://mxjz219.blog.sohu.com/25481441.html 春日游,杏花插满头.陌上谁家年少,足风流.妾拟将身嫁与,一生休,纵被无情弃,不能羞. 在唐五代词中,我最爱的 ...

  9. # HNOI2012 ~ HNOI2018 题解

    HNOI2012 题解 [HNOI2012]永无乡 Tag:线段树合并.启发式合并 联通块合并问题. 属于\(easy\)题,直接线段树合并 或 启发式合并即可. [HNOI2012]排队 Tag:组 ...

最新文章

  1. DP_knapsack
  2. linux shell输出数字小数点前少了0_南京课工场IT培训:SHELL 超详细基础知识,适合新手小白(一)
  3. Django2.0——模板渲染(一)
  4. 如何在PySide中使用qrc资源文件
  5. 红帽:虚拟化关键业务应用需突破五大障碍
  6. SVN修改用户名与密码
  7. 如何根据自己需要截取字符串
  8. 深入解读Linux进程调度系列(总览)
  9. Julia: PostgreSQL数据库.......
  10. 第一次申请去美国面签,需要注意哪些事项提高成功率?
  11. vba获取通达信光标的坐标数据_如何把缠论分笔公式在移动端手机版通达信缠论画笔公式安装...
  12. Andriod 对号错号
  13. PostgreSQL存储过程BEGIN块的事务处理
  14. 天价电费成5G建设拦路虎,多省出台政策给运营商减负
  15. 7款浏览器新标签页扩展让你的Chrome耳目一新
  16. matlab 用m_map画地形水深图
  17. C++ GUI Programming with Qt4 Second Edition 之 附录A.2 Windows系统Qt的安装
  18. 期货公司最低标准的手续费和保证金
  19. OE分布式智能云生态助力全民挖矿
  20. 杰理之开FM会串linein【篇】

热门文章

  1. MySQL无中心化集群_MySQL Plus 如何做到无中心化、数据强一致性、秒级切换?
  2. C++知识点 多态、静态多态、动态多态
  3. nndl学习笔记(二)反向传播公式推导与详解
  4. python matplotlib画图遇到的问题——画多个子图
  5. 再谈注意力机制 | 运用强化学习实现目标特征提取
  6. Alexnet论文解读及代码实现
  7. 基于ViSual Studio 2013 + MYSQL9_5302 + Navicat for MySQL9_5302的ATM自动存取款系统
  8. Spark Streaming和Flume集成指南V1.4.1
  9. wepy小程序踩坑-未发现相关 sass/less 编译器配置,请检查wepy.config.js文件
  10. 递归求出第n项斐波那契数列_Java