bzoj 3729
来源:互联网 发布:偶像活动美月卡片淘宝 编辑:程序博客网 时间:2024/05/17 08:03
题意:
在一棵树上博弈,每次能将不超L个的石头移到父亲。
支持三种操作:
1.询问u为子树的博弈情况
2.修改某个点的值权
3.插入一个新点
题解:
博弈部分
如果直接将u为第0层,就是奇数层的数值才是有用的。
因为不超过L个,后手可以保证每次两人取得(L+1),所以sg值为模(L+1)。
那每次询问就是对整棵树奇偶分层,和当前点奇偶性不同的sg值XOR和。
用splay维护dfs序,每个点拆成两个。
在spaly上用两个点可以包住所有子树内的点。
每个节点分别维护子树内奇数层和偶数层的sg值XOR和。
可以规定:右端点没有权,权在左端点上。
代码:
http://paste.ubuntu.com/24233614/
小结:
这连串数据结构题,是liaoliao给的题目中个人感觉很有启发性的。
在做的过程中,暴露一些问题:
没想清楚就开打。。。这。。。
个人性格决定一定要想请每个细节才打。
打到一半发现忽略的细节一定放下重新想。
少浪费时间想打指针还是数组,无聊。。。
打代码不能急躁,按着节奏来。
不要乱对拍调试,先冷静看看代码。
可以过去一段每日10k+的日子了?(笑)
0 0
- bzoj 3729
- [BZOJ ]
- BZOJ****-****
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- bzoj
- bzoj
- BZOJ
- BZOJ
- bzoj
- windows杀死进程
- javascript中的闭包
- java spi基本demo
- SAP数据归档
- 数据结构(C/C++)(1)
- bzoj 3729
- 牛客网--购买苹果,只有6个一袋和8个一袋的
- Android面试需要考察的方面
- py 类,模块, 包与库
- tensorflow API r1.0
- 基于图像的三维重建与基于三维点云数据的曲面拟合
- linux误删除文件后的恢复操作
- listview通用适配器和RecyclerView通用适配器
- c++ 选择结构