[关闭]
@Metralix 2016-12-14T17:47:06.000000Z 字数 649 阅读 770

A - Game with Pearls

巧妙 贪心


题目大意:

有n个盒子,给你盒子初始各有几个豆子,每次可以在一个篮子里放k个豆子,问可能不可能放若干次后,有1个豆子,2个豆子。。。。。n-1个豆子,n个豆子的篮子各有一个。问你行不行。

解题思路:

 范围只有100,只能用下标运算,对于某个值x,如果出现超过一次,那么肯定只留一个,剩下全部去加k,因为不知道到底要加几次k才好,所以先加1次k到达x+k,如果多了在去加k。

AC代码:

  1. #include<stdio.h>
  2. #include<algorithm>
  3. #include<string.h>
  4. using namespace std;
  5. int a[1000],b[1000];
  6. int main()
  7. {
  8. int t;
  9. scanf("%d",&t);
  10. while(t--)
  11. {
  12. int n,m;
  13. memset(b,0,sizeof(b));
  14. scanf("%d%d",&n,&m);
  15. for(int i=1;i<=n;i++)
  16. {
  17. scanf("%d",&a[i]);
  18. }
  19. int sum;
  20. int sum1;
  21. int p=0;
  22. for(int i=1;i<=n;i++)
  23. {
  24. sum1=0;
  25. sum=0;
  26. for(int j=1;j<=n;j++)
  27. {
  28. if((i-a[j])%m==0&&(i-a[j])>=0&&a[j]!=-1&&sum==0)
  29. {
  30. a[j]=-1;
  31. }
  32. }
  33. if(sum==1)
  34. {
  35. continue;
  36. }
  37. else
  38. {
  39. p=1;
  40. }
  41. }
  42. if(p==0)
  43. {
  44. printf("Jerry\n");
  45. }
  46. else
  47. {
  48. printf("Tom\n");
  49. }
  50. }
  51. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注