当前位置:   article > 正文

Codeforces Round #698 (Div. 2) (思维)_colorful and no code

colorful and no code

A. Nezzar and Colorful Balls


题意:给你一个非递减序列的球,现在要给每个球涂色,要求每种颜色的球的值是单调递增的,问最少用多少种颜色
解题思路:根据题意,我们不难看出相同权值的小球不可能为同一颜色,我们只需要找到权值相同且数量最多的小球的数量就行,由于球的权值是非递减的,换句话说权值相同的球是挨在一起的,我们只需要判断连续的相同的球的数量最大是多少就行
Code:
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int a[105];
  4. int main()
  5. {
  6. int t,n;
  7. scanf("%d",&t);
  8. while(t--) {
  9. scanf("%d",&n);
  10. for(int i = 1;i <= n; ++i) scanf("%d",&a[i]);
  11. a[0] = a[1];
  12. int ans = 1;
  13. int loc = 0,lock = a[1];
  14. for(int i = 1;i <= n; ++i) {
  15. if(a[i] == lock)
  16. loc++;
  17. else {
  18. loc = 1;
  19. lock = a[i];
  20. }
  21. ans = max(ans,loc);
  22. }
  23. printf("%d\n",ans);
  24. }
  25. return 0;
  26. }

B. Nezzar and Lucky Number


题意:判断是否有由一个或者多个包含幸运的数字d的数组成a[i],这个幸运数字d选取[1,9]
解题思路:很明显当a[i]>=10×d时,一定存在,否则我们就分类讨论,详情请看代码,(代码由些许暴力)
Code:
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. ll t,q,d;
  5. int main()
  6. {
  7. ll k;
  8. scanf("%lld",&t);
  9. while(t--) {
  10. scanf("%lld%lld",&q,&d);
  11. for(int i = 0;i < q; ++i) {
  12. scanf("%lld",&k);
  13. ll kk = k % 10;
  14. if(k >= d * 10LL) {
  15. puts("YES");
  16. }
  17. else {
  18. if(d == 1)
  19. puts("YES");
  20. else if(d == 2) {
  21. if(k % 2 == 0)
  22. puts("YES");
  23. else
  24. puts("NO");
  25. }
  26. else if(d == 3) {
  27. if(kk == 3 || kk == 6 || kk == 9 || (k >= 12 && kk == 2) || (k >= 15 && kk == 5) || (k >= 18 && kk == 8) || (k >= 21 && kk == 1) || (k >= 24 && kk == 4) || (k >= 27 && kk == 7) || (k >= 30 && kk == 0))
  28. puts("YES");
  29. else
  30. puts("NO");
  31. }
  32. else if(d == 4) {
  33. if(kk == 4 || kk == 8 || (k >= 12 && kk == 2)|| (k >= 16 && kk == 6) || (k >= 20 && kk == 0))
  34. puts("YES");
  35. else
  36. puts("NO");
  37. }
  38. else if(d == 5) {
  39. if(kk == 0 || kk == 5)
  40. puts("YES");
  41. else
  42. puts("NO");
  43. }
  44. else if(d == 6) {
  45. if(kk == 6 || (k >= 12 && kk == 2) || (k >= 18 && kk == 8) || (k >= 24 && kk == 4) || (k >= 30 && kk == 0))
  46. puts("YES");
  47. else
  48. puts("NO");
  49. }
  50. else if(d == 7) {
  51. if(kk == 7 || (k >= 14 && kk == 4) || (k >= 21 && kk == 1) || (k >= 28 && kk == 8) || (k >= 35 && kk == 5) || (k >= 42 && kk == 2) || (k >= 49 && kk == 9) || (k >= 56 && kk == 6) || (k >= 63 && kk == 3) || (k >= 70 && kk == 0))
  52. puts("YES");
  53. else
  54. puts("NO");
  55. }
  56. else if(d == 8) {
  57. if(kk == 8 || (k >= 16 && kk == 6) || (k >= 24 && kk == 4) || (k >= 32 && kk == 2) || (k >= 40 && kk == 0))
  58. puts("YES");
  59. else
  60. puts("NO");
  61. }
  62. else if(d == 9) {
  63. if(kk == 9 || (k >= 18 && kk == 8) || (k >= 27 && kk == 7) || (k >= 36 && kk == 6) || (k >= 45 && kk == 5) || (k >= 54 && kk == 4) || (k >= 63 && kk == 3) || (k >= 72 && kk == 2) || (k >= 81 && kk == 1) || (k >= 90 && kk == 0))
  64. puts("YES");
  65. else
  66. puts("NO");
  67. }
  68. }
  69. }
  70. }
  71. return 0;
  72. }

看到一个神奇的代码:

  1. main(q,d,x){for(scanf("%*d");~scanf("%d%d",&q,&d);)while(q--){
  2. scanf("%d",&x);while(x>d&&x<d*10&&x%d)x-=10;puts(x<d?"NO":"YES");}}
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/75396?site
推荐阅读
相关标签
  

闽ICP备14008679号