设为首页 加入收藏

TOP

UVA 11892 - ENimEN (简单博弈)
2014-11-23 21:27:56 来源: 作者: 【 】 浏览:1
Tags:UVA 11892 ENimEN 简单 博弈


题意:有n堆石子,每堆的个数为ai,每次可以取一堆中任意非0个数石子,取到最后石子为胜。
新增条件是:每个人只能在对手最后取过的堆里取,除非对手把堆取完

题解:
简单的推理,先考虑1~n堆,每堆都是1
1 先,1 1后,1 1 1先,1 1 1 1后,。。。如此交替
再推倒出现非1的情况,非1数设为x
x先,
1 x->1 1先,x x->1 x->x先
1 1 x->1 1先,1 x x->1 x 1->1 x先,x x x->x x 1->x x先
。。。
可发现除了全是1的情况,其他都能根据已知条件推出先手必胜


AC代码:

#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
#include    
using namespace std;  
  
typedef long long LL;  
const int N=100005;  
const int INF=0x3f3f3f3f;  
const double PI=acos(-1.0);  
  
int main()  
{  
    int i,T;  
    cin>>T;  
    while(T--)  
    {  
        int a,n,f=0;  
        scanf("%d",&n);  
        for(i=0;i
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;

typedef long long LL;
const int N=100005;
const int INF=0x3f3f3f3f;
const double PI=acos(-1.0);

int main()
{
    int i,T;
    cin>>T;
    while(T--)
    {
        int a,n,f=0;
        scanf("%d",&n);
        for(i=0;i 
 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇zoj3658 Simple Function (函数值.. 下一篇POJ 3723 Conscription

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·如何理解c语言指针和 (2025-12-27 01:19:11)
·为什么C标准库没有链 (2025-12-27 01:19:08)
·玩转C语言和数据结构 (2025-12-27 01:19:05)
·MySQL 基础入门视频 (2025-12-26 23:20:22)
·小白入门:MySQL超详 (2025-12-26 23:20:19)