当前位置:编程学习 > C/C++ >>

HDU 3544 Alice's Game


思路:博弈

后者会尽量选前着切后其中小的一块来切,那么先手须尽量取中间来切。

[cpp]
<span style="font-size:18px;color:#003300;"><strong>#include<stdio.h> 
int main() 

    int T,c=0,n,i; 
    __int64 a,b,x,y; 
    scanf("%d",&T); 
    while(T--) 
    { 
        scanf("%d",&n); 
        a=b=0; 
        for(i=0;i<n;i++) 
        { 
            scanf("%I64d%I64d",&x,&y); 
            while(x>1&&y>1) 
            { 
                x=x>>1; 
                y=y>>1; 
            } 
            if(x==1) b+=y-1; 
            if(y==1) a+=x-1; 
             
        } 
        printf("Case %d: ",++c); 
        printf(a>b?"Alice\n":"Bob\n"); 
    } 
    return 0; 
}</strong></span> 


 

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,