Description

Solution

首先,每个节点上的权值可以等价于该节点上有(它的权的二进制位数+1)个石子,每次可以拿若干个石子但不能不拿。

然后就发现这和NIM游戏很像,就计算sg函数em(然而我并不会推)

如果您恰好看到这篇博,又恰好有空的话,欢迎探讨~

Code

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<cmath>
  5. using namespace std;
  6. typedef unsigned long long ull;
  7. int n,x,y;
  8. int num[];
  9. ull t;
  10. struct G{int y,nxt;}g[];int h[],tot=;
  11. int dfs(int x,int fa)
  12. {
  13. int c=num[x],d=;
  14. for (int i=h[x];i;i=g[i].nxt)
  15. if (g[i].y!=fa) d^=dfs(g[i].y,x);
  16. return c-=(c<=d);
  17. }
  18. int main()
  19. {
  20. while (scanf("%d",&n)!=EOF)
  21. {
  22. for (int i=;i<=n;i++){scanf("%llu",&t);num[i]=(int)log2(t)+;}
  23. memset(h,,sizeof(h));tot=;
  24. for (int i=;i<n;i++)
  25. {
  26. scanf("%d%d",&x,&y);x++;y++;
  27. g[++tot]=G{y,h[x]};h[x]=tot;
  28. g[++tot]=G{x,h[y]};h[y]=tot;
  29. }
  30. dfs(,)?printf("Alice\n"):printf("Marisa\n");
  31. }
  32. }

[2016北京集训试题6]魔法游戏-[博弈论-sg函数]的更多相关文章

  1. bzoj1188 [HNOI2007]分裂游戏 博弈论 sg函数的应用

    1188: [HNOI2007]分裂游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 973  Solved: 599[Submit][Status ...

  2. [2016北京集训试题15]cot-[分块]

    Description Solution 如图,假如我们知道了以任何一个点为顶点的135-180度的前缀和和90-180度的前缀和,我们就可以搞出三角形的面积. 差分.add[i][j]和dev[i] ...

  3. [2016北京集训试题15]项链-[FFT]

    Description Solution 设y[i+k]=y[i]+n. 由于我们要最优解,则假如将x[i]和y[σ[i]]连线的话,线是一定不会交叉的. 所以,$ans=\sum (x_{i}-y_ ...

  4. [2016北京集训试题14]股神小D-[LCT]

    Description Solution 将(u,v,l,r)换为(1,u,v,l)和(2,u,v,r).进行排序(第4个数为第一关键字,第1个数为第二关键字).用LCT维护联通块的合并和断开.(维护 ...

  5. [2016北京集训试题6]mushroom-[bitset]

    Description Solution bitset是个好东西啊..强行压位什么的真是够orz. 由于所有的蘑菇上房间的长相是一样的,我们针对每个房间,算出它到根节点的bitset和以它为根的子树的 ...

  6. [2016北京集训试题6]网络战争-[最小割树(网络流)+kd-tree+倍增]

    Description A 联邦国有 N 个州,每个州内部都有一个网络系统,有若干条网络线路,连接各个 州内部的城市. 由于 A 国的州与州之间的关系不是太好,每个州都只有首府建立了到别的州的网络.具 ...

  7. [2016北京集训试题8]连在一起的幻想乡[dp+无向图计数]

    Description Solution 本博客参考yww大佬的博客,为了加深理解我就自己再写一遍啦. 以下的“无向图”均无重边无自环. 定义f0[n]为n个点构成的无向图个数,f1[n]为n个点构成 ...

  8. [2016北京集训试题7]thr-[树形dp+树链剖分+启发式合并]

    Description Solution 神仙操作orz. 首先看数据范围,显然不可能是O(n2)的.(即绝对不是枚举那么简单的),我们考虑dp. 定义f(x,k)为以x为根的子树中与x距离为k的节点 ...

  9. 【2016北京集训】crash的游戏

    Portal --> broken qwq Description 有个口袋,一开始里面有\(N\)个球,接下来进行\(M\)次操作,每次可以选择往里面放一个球或者从里面拿一个球出来,在这\(M ...

随机推荐

  1. Oracle EBS 跳跳转标准销售订单程序转标准销售订单程序

    -- 打开PO PROCEDURE Btn_Open_Po IS BEGIN Fnd_Function.Execute(Function_Name => 'PO_POXPOEPO', Open_ ...

  2. Oracle EBS 附件功能

    SELECT fde.table_name, fde.data_object_code, fdet.user_entity_name, fdet.user_entity_prompt, fat.app ...

  3. Java中的消息框

    JOptionPane.showMessageDialog(newFrame.getContentPane(),"弹出的是消息提示框!", "系统信息", JO ...

  4. .net Cookie的操作

    using System; using System.Collections.Generic; using System.Web; namespace Zhong.Core { /// <sum ...

  5. 转:Eclipse+webservice开发实例

    原文地址:http://blog.csdn.net/xw13106209/article/details/7049614 1.参考文献: 1.利用Java编写简单的WebService实例  http ...

  6. 搜索菜单栏侧滑效果控件SearchView

    搜索菜单栏侧滑效果控件SearchView 本人视频教程系类   iOS中CALayer的使用 效果1: 效果2: 项目中用到的图片 bgImg@2x.png: 源码: SearchView.h + ...

  7. 使用 JSONModel

    Magical Data Modelling Framework for JSON https://github.com/icanzilb/JSONModel New: In version 0.12 ...

  8. 17 汽车服务工程 李腾飞 Excel 课程表

  9. Android点击事件

    Android点击事件 备注 全局实现View.OnClickListener 或许需要将MainActivity设置为public 注册事件 btn_login.setOnClickListener ...

  10. el表达式便利map集合

    <c:forEach items="${b.goodMap}" var="entry" varStatus="status"> ...