zoukankan      html  css  js  c++  java
  • ZR 舔到(博弈)

    题目链接

    满分做法:

    树可以分为所有节点度数都是奇数和至少有一个节点度数是偶数。对于第一个状态,一定转移到第二个状态;而第二个状态一定可以转移到第一个状态(一定存在一个偶节点删除后他和他的子树成为第一个状态)。

    这样当先手局面为全奇时,只能变为第二个情况,后手总能把情况再变回第一个,这样最后先手就面临一条边的情况,所以就输了。入股先手局面为有偶数时,他就成了后手。

    #include<queue>
    #include<cstring>
    #include<cstdio>
    #include<algorithm>
    #include<cmath>
    #include<iostream>
    using namespace std;
    typedef long long ll;
    const int maxm=1e6+7;
    int n;
    int du[maxm];
    int main()
    {
     scanf("%d",&n);
     for(int i=1;i<=n-1;i++)
     {
      int x,y;
      scanf("%d%d",&x,&y);
      du[x]++;
      du[y]++;	
     }
     for(int i=1;i<=n;i++)
     {
      if(du[i]%2==0)
      {
       printf("Alice
    ");
       return 0;
      }
     }
     printf("Bob
    "); 
     return 0;	
    }
    
  • 相关阅读:
    周记 2016.3.29
    Java ActiveMQ 讲解(一)理解JMS 和 ActiveMQ基本使用(转)
    聊聊架构01
    乐观锁和悲观所
    数据库锁(转)
    ActiveMQ消息的可靠性机制(转)
    DOM
    JavaScript
    CSS之background
    CSS之overflow
  • 原文地址:https://www.cnblogs.com/lihan123/p/11805068.html
Copyright © 2011-2022 走看看