zoukankan      html  css  js  c++  java
  • HDU 5996:dingyeye loves stone(阶梯博弈)

    http://acm.hdu.edu.cn/showproblem.php?pid=5996

    题意:在一棵树上进行博弈,每次只能将当前的结点的石子放到父节点上,最后不能移动的输。

    思路:比赛的时候想的是对于每一个深度为dep的结点,可以转化为dep堆同样的深度为1的结点,然后就不会了,忘了最后异或起来偶数可以抵消,相当于对方移动,我方也跟着移动对方上一个回合移动的石子,所以最后只要考虑深度为奇数的结点。

     1 #include <cstdio>
     2 #include <algorithm>
     3 #include <iostream>
     4 #include <cstring>
     5 #include <string>
     6 #include <cmath>
     7 #include <queue>
     8 #include <vector>
     9 #include <map>
    10 using namespace std;
    11 #define INF 0x3f3f3f3f
    12 #define N 100010
    13 typedef long long LL;
    14 
    15 int fa[N], a[N], dep[N];
    16 
    17 int main()
    18 {
    19     int t;
    20     scanf("%d", &t);
    21     while(t--) {
    22         int n;
    23         scanf("%d", &n);
    24         int ans = 0;
    25         dep[0] = 0;
    26         for(int i = 1; i < n; i++)
    27             scanf("%d", &fa[i]);
    28         for(int i = 0; i < n; i++)
    29             scanf("%d", &a[i]);
    30         for(int i = 1; i < n; i++)
    31             dep[i] = dep[fa[i]] + 1;
    32         for(int i = 0; i < n; i++)
    33             if(dep[i] & 1) ans ^= a[i];
    34         if(ans) puts("win");
    35         else puts("lose");
    36     }
    37     return 0;
    38 }
  • 相关阅读:
    如何提升自身实力
    python实现远程控制Linux
    python对象之间的关系
    python类的属性和方法
    简单阐述后端测试
    python操作数据库
    AppCrawler
    RobotFramework作业
    接口自动化测试
    CSS3 Backgrounds相关介绍
  • 原文地址:https://www.cnblogs.com/fightfordream/p/6193440.html
Copyright © 2011-2022 走看看