• [1627] Alex’s Game(II)

  • 时间限制: 2000 ms 内存限制: 65535 K
  • 问题描述
  • Alex likes to play with one and zero as you know .

    Today he gets a sequence which contains n(n<=1e5) integers.Each integer is no nore than 100.now he wants to know what’s the minimun contigous subsequence that their puduct contain no less than k(k<=1e5) zeros in the tail.

  • 输入
  • First are two integers n and k.
    Next contains n lines ,every line contains n integers. 
    All integers are bigger than 0.
  • 输出
  • For each case output the answer if you can find it.
    Else just output “haha”
  • 样例输入
    1. 5 1
    2. 2 10 2 5 1
    3. 5 3
    4. 2 10 2 5 1
  • 样例输出
    1. 1
    2. haha

刚开始以为K=0的话就直接输出0,后来发现0的情况要特判:若每一个数都末尾带0,即能被10整除,则输出0,否则只要取那个不是10倍数的数即可,输出1.其他情况用尺取法。

统计2与5的个数,只有这两个数可以影响末尾0的个数,每一次加上L或减掉R那边的两个统计个数即可。

代码:

  1. #include<iostream>
  2. #include<algorithm>
  3. #include<cstdlib>
  4. #include<sstream>
  5. #include<cstring>
  6. #include<cstdio>
  7. #include<string>
  8. #include<deque>
  9. #include<cmath>
  10. #include<queue>
  11. #include<set>
  12. #include<map>
  13. using namespace std;
  14. typedef long long LL;
  15. #define INF 0x3f3f3f3f
  16. int two[100010];
  17. int five[100010];
  18. int pos[100010];
  19. inline int conttwo(int n)
  20. {
  21. if(n%2!=0)
  22. return 0;
  23. else
  24. {
  25. int ans=0;
  26. while (n%2==0)
  27. {
  28. ans++;
  29. n>>=1;
  30. }
  31. return ans;
  32. }
  33. }
  34. inline int contfive(int n)
  35. {
  36. if(n%5!=0)
  37. return 0;
  38. else
  39. {
  40. int ans=0;
  41. while (n%5==0)
  42. {
  43. ans++;
  44. n/=5;
  45. }
  46. return ans;
  47. }
  48. }
  49. int main(void)
  50. {
  51. int n,k,dx,ans,i,j,t;
  52. while (~scanf("%d%d",&n,&k))
  53. {
  54. memset(two,0,sizeof(two));
  55. memset(five,0,sizeof(five));
  56. for (i=1; i<=n; i++)
  57. {
  58. scanf("%d",&pos[i]);
  59. two[i]=conttwo(pos[i]);
  60. five[i]=contfive(pos[i]);
  61. }
  62. if(k<=0)//特判0
  63. {
  64. bool flag=0;
  65. for (i=1; i<=n; i++)
  66. {
  67. if(pos[i]%10!=0)
  68. {
  69. flag=1;
  70. break;
  71. }
  72. }
  73. if(flag)
  74. printf("%d\n",1);
  75. else
  76. printf("%d\n",0);
  77. continue;
  78. }
  79. int l=1,r=1,dx=INF;
  80. int sum5=0,sum2=0;
  81. while (1)
  82. {
  83. while (r<=n&&min(sum5,sum2)<k)
  84. {
  85. sum5+=five[r];
  86. sum2+=two[r];
  87. r++;
  88. }
  89. if(min(sum5,sum2)<k)
  90. break;
  91. dx=min(dx,r-l);
  92. sum5-=five[l];
  93. sum2-=two[l];
  94. l++;
  95. }
  96. if(dx==INF)
  97. printf("haha\n");
  98. else
  99. printf("%d\n",dx);
  100. }
  101. return 0;
  102. }

  

NOJ——1627Alex’s Game(II)(尺取)的更多相关文章

  1. NOJ 1072 The longest same color grid(尺取)

    Problem 1072: The longest same color grid Time Limits:  1000 MS   Memory Limits:  65536 KB 64-bit in ...

  2. Gym 100703I---Endeavor for perfection(尺取)

    题目链接 http://codeforces.com/problemset/gymProblem/100703/I Description standard input/outputStatement ...

  3. hdu 4123 Bob’s Race 树的直径+rmq+尺取

    Bob’s Race Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Probl ...

  4. Codeforces Round #116 (Div. 2, ACM-ICPC Rules) E. Cubes (尺取)

    题目链接:http://codeforces.com/problemset/problem/180/E 给你n个数,每个数代表一种颜色,给你1到m的m种颜色.最多可以删k个数,问你最长连续相同颜色的序 ...

  5. poj2566尺取变形

    Signals of most probably extra-terrestrial origin have been received and digitalized by The Aeronaut ...

  6. poj2100还是尺取

    King George has recently decided that he would like to have a new design for the royal graveyard. Th ...

  7. hdu 6231 -- K-th Number(二分+尺取)

    题目链接 Problem Description Alice are given an array A[1..N] with N numbers. Now Alice want to build an ...

  8. Codeforces 939E Maximize! (三分 || 尺取)

    <题目链接> 题目大意:给定一段序列,每次进行两次操作,输入1 x代表插入x元素(x元素一定大于等于之前的所有元素),或者输入2,表示输出这个序列的任意子集$s$,使得$max(s)-me ...

  9. cf1121d 尺取

    尺取,写起来有点麻烦 枚举左端点,然后找到右端点,,使得区间[l,r]里各种颜色花朵的数量满足b数组中各种花朵的数量,然后再judge区间[l,r]截取出后能否可以供剩下的n-1个人做花环 /* 给定 ...

随机推荐

  1. anaconda 安装各种库

    在anaconda prompt 添加清华源 https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ conda config --add channe ...

  2. RSA AES 前端JS与后台JAVA的加密解密的是实现

    AES CryptoJS 前提是编码方式,key,vi中设置一样,就可以进行跨语言加密解密 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...

  3. 利用ss5服务搭建代理服务器

    利用ss5服务搭建代理服务器 1. 下载ss5-3.8.9-8.tar.gz ###官网下载http://ss5.sourceforge.net/ 2. 安装ss5 yum -y install gc ...

  4. APP上线碰到的问题:Non-public API usage

    ①.Non-public API usage:The app references non-public symbols in XXXX: _UICreateCGImageFromIOSurface ...

  5. 20180904 定时器setTimeout和setInterval回调问题

    引用: setTimeout和setInterval两者的区别 setTimeout和setInterval的优缺点 setTimeout和setInterval详解 两者的作用都是在定时多少毫秒后回 ...

  6. Falsy Bouncer-freecodecamp算法题目

    Falsy Bouncer(过滤数组假值) 要求 删除数组中的所有假值.(在JavaScript中,假值有false.null.0."".undefined 和 NaN.) 思路 ...

  7. Noip 训练指南

    目录 Noip 训练指南 图论 数据结构 位运算 期望 题解 Noip 训练指南 目前完成 \(4 / 72\) 图论 [ ] 跳楼机 [ ] 墨墨的等式 [ ] 最优贸易 [ ] 泥泞的道路 [ ] ...

  8. Laravel中chunk组块结果集处理

    如果你需要处理成千上万个 Eloquent 结果,可以使用 chunk 命令.chunk 方法会获取一个“组块”的 Eloquent 模型,并将其填充到给定闭包进行处理.使用 chunk 方法能够在处 ...

  9. Flask初学者:Jinja2模板

    Python的Jinja2模板,其实就是在HTML文档中使用控制语句和表达语句替换HTML文档中的变量来控制HTML的显示格式,Python的Jinja2模板可以更加灵活和方便的控制HTML的显示,而 ...

  10. 这五本Python急速入门必读的书,送给正在学习Python的你!

    书籍是人类进步的阶梯,这句话从古至今都是适用的.为什么会这么说呢?书籍,它记录了人们实践的经验,这些经验有助于我们快速的学习,对于编程学习来说也不例外,今天就给大家带来了以下的书籍干货,希望能够帮助到 ...