hdu3544 Alice's Game

Posted YJY_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu3544 Alice's Game相关的知识,希望对你有一定的参考价值。

给一块n*m的巧克力,Alice只能垂直切,切成A*m和B*m,并且A+B=n,Bob只能横切,只能切成A*n和B*n,并且A+B=m。

对于n*n的这种巧克力,谁先切了第一刀,就直接让对方有切两刀的机会,所以Alice不可能去切这种巧克力,可以直接无视这种。

后一人会尽量选前一人切后小的一块切。

 

#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;

typedef long long LL;

int n,t;
LL x,y;

int main()
{
    scanf("%d",&t);
    for (int i=1;i<=t;i++)
    {
        scanf("%d",&n);
        LL k1=0,k2=0;
        while (n--)
        {
            scanf("%lld%lld",&x,&y);
            while (x>1 && y>1)
                x>>=1,y>>=1,k1++,k2++;
            if (x==1)
                k2+=y-1;
            else
                k1+=x-1;
        }
        if (k1<=k2)
            printf("Case %d: Bob\n",i);
        else
            printf("Case %d: Alice\n",i);
    
    }
    return 0;
}

 

以上是关于hdu3544 Alice's Game的主要内容,如果未能解决你的问题,请参考以下文章

hdu 4122 Alice&#39;s mooncake shop (线段树)

(HDU 5558) 2015ACM/ICPC亚洲区合肥站---Alice's Classified Message(后缀数组)

UVA1484 Alice and Bob's Trip (hdu3660)

HDU5870 Alice's Adventure in Wonderland

hdu3544找规律

HUID 5558 Alice's Classified Message 后缀数组+单调栈+二分