ZJNU 2212 - Turn-based game

Posted stelayuri

tags:

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

Mr.Lee每隔1/x s攻击一次,cpu每隔1/y s攻击一次

因为时间与答案无关,最后只看boss受到了多少次攻击

所以可以在每个人的频率上同时乘以xy

即Mr.Lee每隔y s攻击一次,cpu每隔x s攻击一次

这样看虽然时间延长但是结果不变

就可以二分查找出打败boss用时,最后再根据时间判断谁给予的最后一击

二分出用时t,则t%x==0表示cpu给予最后一击

t%y==0表示Mr.Lee给予最后一击

 1 #include<stdio.h>
 2 int main(){
 3     long long n,x,y,k,l,r,m,d1,d2;
 4     scanf("%lld%lld%lld",&n,&x,&y);
 5     while(n--){
 6         scanf("%lld",&k);
 7         l=1;
 8         r=1e15;
 9         while(l<r){
10             m=(l+r)>>1;
11             if(m/x+m/y>=k)
12                 r=m;
13             else
14                 l=m+1;
15         }
16         d1=r%x;
17         d2=r%y;
18         if(!d1&&!d2)
19             puts("Obviously Ruddy Eye is the first!");
20         else if(d1&&!d2)
21             puts("I like Ruddy Eye forever!");
22         else if(!d1&&d2)
23             puts("Spicy chicken computer!");
24     }
25     
26     return 0;
27 }

 

以上是关于ZJNU 2212 - Turn-based game的主要内容,如果未能解决你的问题,请参考以下文章

zjnu(1181)——石子合并

HDU - 3047 Zjnu Stadium

Zjnu Stadium(加权并查集)

HDU3047-Zjnu Stadium-带权并查集

ZJNU 1528 - War--高级

ZJNU 2133 - 认亲大会