Link:http://acm.hdu.edu.cn/showproblem.php?pid=4861
Couple doubi
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1434 Accepted Submission(s): 993
In the first line there are two Integers k and p(1<k,p<2^31).
2 3 20 3
YES NO
/*附上打表找规律代码:
#include<stdio.h>
#include<math.h>
int main ()
{
int i ,j ,sum;
printf("9 3\n");
for(i = 1 ;i <= 9 ;i ++)
{
sum = 0;
for(j = 1 ;j < 3 ;j ++)
sum = sum + int (pow(j * 1.0 ,i * 1.0)) % 3;
printf("%d " ,sum % 3);
}
printf("\n2 3\n");
for(i = 1 ;i <= 2 ;i ++)
{
sum = 0;
for(j = 1 ;j < 3 ;j ++)
sum = sum + int (pow(j * 1.0 ,i * 1.0)) % 3;
printf("%d " ,sum % 3);
}
printf("\n9 2\n");
for(i = 1 ;i <= 9 ;i ++)
{
sum = 0;
for(j = 1 ;j < 2 ;j ++)
sum = sum + int (pow(j * 1.0 ,i * 1.0)) % 2;
printf("%d " ,sum % 2);
}
printf("\n10 3\n");
for(i = 1 ;i <= 10 ;i ++)
{
sum = 0;
for(j = 1 ;j < 3 ;j ++)
sum = sum + int (pow(j * 1.0 ,i * 1.0)) % 3;
printf("%d " ,sum % 3);
}
printf("\n10 5\n");
for(i = 1 ;i <= 10 ;i ++)
{
sum = 0;
for(j = 1 ;j < 5 ;j ++)
sum = sum + int (pow(j * 1.0 ,i * 1.0)) % 5;
printf("%d " ,sum % 5);
}
printf("\n10 7\n");
for(i = 1 ;i <= 10 ;i ++)
{
sum = 0;
for(j = 1 ;j < 7 ;j ++)
sum = sum + int (pow(j * 1.0 ,i * 1.0)) % 7;
printf("%d " ,sum % 7);
}
printf("\n10 11\n");
for(i = 1 ;i <= 10 ;i ++)
{
sum = 0;
for(j = 1 ;j < 11 ;j ++)
sum = sum + int (pow(j * 1.0 ,i * 1.0)) % 11;
printf("%d " ,sum % 11);
}
getchar();
}*/
/*编程思想:多试几个很容易可以发现规律。。。只有在p-1的倍数时有非0元素存在。
那么由于是博弈,大家每次肯定都是选那个比较大的数,所以,若是 k/(p-1)为奇数则先手必胜,否则平局*/
//AC CODE:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int k, p;
while(~scanf("%d%d", &k, &p))
{
if((k/(p-1))%2==1)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
896



被折叠的 条评论
为什么被折叠?



