[2016北京集训试题6]魔法游戏-[博弈论-sg函数]
Description
Solution
首先,每个节点上的权值可以等价于该节点上有(它的权的二进制位数+1)个石子,每次可以拿若干个石子但不能不拿。
然后就发现这和NIM游戏很像,就计算sg函数em(然而我并不会推)
如果您恰好看到这篇博,又恰好有空的话,欢迎探讨~
Code
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<cmath>
- using namespace std;
- typedef unsigned long long ull;
- int n,x,y;
- int num[];
- ull t;
- struct G{int y,nxt;}g[];int h[],tot=;
- int dfs(int x,int fa)
- {
- int c=num[x],d=;
- for (int i=h[x];i;i=g[i].nxt)
- if (g[i].y!=fa) d^=dfs(g[i].y,x);
- return c-=(c<=d);
- }
- int main()
- {
- while (scanf("%d",&n)!=EOF)
- {
- for (int i=;i<=n;i++){scanf("%llu",&t);num[i]=(int)log2(t)+;}
- memset(h,,sizeof(h));tot=;
- for (int i=;i<n;i++)
- {
- scanf("%d%d",&x,&y);x++;y++;
- g[++tot]=G{y,h[x]};h[x]=tot;
- g[++tot]=G{x,h[y]};h[y]=tot;
- }
- dfs(,)?printf("Alice\n"):printf("Marisa\n");
- }
- }
[2016北京集训试题6]魔法游戏-[博弈论-sg函数]的更多相关文章
- bzoj1188 [HNOI2007]分裂游戏 博弈论 sg函数的应用
1188: [HNOI2007]分裂游戏 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 973 Solved: 599[Submit][Status ...
- [2016北京集训试题15]cot-[分块]
Description Solution 如图,假如我们知道了以任何一个点为顶点的135-180度的前缀和和90-180度的前缀和,我们就可以搞出三角形的面积. 差分.add[i][j]和dev[i] ...
- [2016北京集训试题15]项链-[FFT]
Description Solution 设y[i+k]=y[i]+n. 由于我们要最优解,则假如将x[i]和y[σ[i]]连线的话,线是一定不会交叉的. 所以,$ans=\sum (x_{i}-y_ ...
- [2016北京集训试题14]股神小D-[LCT]
Description Solution 将(u,v,l,r)换为(1,u,v,l)和(2,u,v,r).进行排序(第4个数为第一关键字,第1个数为第二关键字).用LCT维护联通块的合并和断开.(维护 ...
- [2016北京集训试题6]mushroom-[bitset]
Description Solution bitset是个好东西啊..强行压位什么的真是够orz. 由于所有的蘑菇上房间的长相是一样的,我们针对每个房间,算出它到根节点的bitset和以它为根的子树的 ...
- [2016北京集训试题6]网络战争-[最小割树(网络流)+kd-tree+倍增]
Description A 联邦国有 N 个州,每个州内部都有一个网络系统,有若干条网络线路,连接各个 州内部的城市. 由于 A 国的州与州之间的关系不是太好,每个州都只有首府建立了到别的州的网络.具 ...
- [2016北京集训试题8]连在一起的幻想乡[dp+无向图计数]
Description Solution 本博客参考yww大佬的博客,为了加深理解我就自己再写一遍啦. 以下的“无向图”均无重边无自环. 定义f0[n]为n个点构成的无向图个数,f1[n]为n个点构成 ...
- [2016北京集训试题7]thr-[树形dp+树链剖分+启发式合并]
Description Solution 神仙操作orz. 首先看数据范围,显然不可能是O(n2)的.(即绝对不是枚举那么简单的),我们考虑dp. 定义f(x,k)为以x为根的子树中与x距离为k的节点 ...
- 【2016北京集训】crash的游戏
Portal --> broken qwq Description 有个口袋,一开始里面有\(N\)个球,接下来进行\(M\)次操作,每次可以选择往里面放一个球或者从里面拿一个球出来,在这\(M ...
随机推荐
- Oracle EBS 跳跳转标准销售订单程序转标准销售订单程序
-- 打开PO PROCEDURE Btn_Open_Po IS BEGIN Fnd_Function.Execute(Function_Name => 'PO_POXPOEPO', Open_ ...
- Oracle EBS 附件功能
SELECT fde.table_name, fde.data_object_code, fdet.user_entity_name, fdet.user_entity_prompt, fat.app ...
- Java中的消息框
JOptionPane.showMessageDialog(newFrame.getContentPane(),"弹出的是消息提示框!", "系统信息", JO ...
- .net Cookie的操作
using System; using System.Collections.Generic; using System.Web; namespace Zhong.Core { /// <sum ...
- 转:Eclipse+webservice开发实例
原文地址:http://blog.csdn.net/xw13106209/article/details/7049614 1.参考文献: 1.利用Java编写简单的WebService实例 http ...
- 搜索菜单栏侧滑效果控件SearchView
搜索菜单栏侧滑效果控件SearchView 本人视频教程系类 iOS中CALayer的使用 效果1: 效果2: 项目中用到的图片 bgImg@2x.png: 源码: SearchView.h + ...
- 使用 JSONModel
Magical Data Modelling Framework for JSON https://github.com/icanzilb/JSONModel New: In version 0.12 ...
- 17 汽车服务工程 李腾飞 Excel 课程表
- Android点击事件
Android点击事件 备注 全局实现View.OnClickListener 或许需要将MainActivity设置为public 注册事件 btn_login.setOnClickListener ...
- el表达式便利map集合
<c:forEach items="${b.goodMap}" var="entry" varStatus="status"> ...