NOJ——1627Alex’s Game(II)(尺取)
[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” - 样例输入
5 1
2 10 2 5 1
5 3
2 10 2 5 1- 样例输出
1
haha
刚开始以为K=0的话就直接输出0,后来发现0的情况要特判:若每一个数都末尾带0,即能被10整除,则输出0,否则只要取那个不是10倍数的数即可,输出1.其他情况用尺取法。
统计2与5的个数,只有这两个数可以影响末尾0的个数,每一次加上L或减掉R那边的两个统计个数即可。
代码:
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<sstream>
#include<cstring>
#include<cstdio>
#include<string>
#include<deque>
#include<cmath>
#include<queue>
#include<set>
#include<map>
using namespace std;
typedef long long LL;
#define INF 0x3f3f3f3f
int two[100010];
int five[100010];
int pos[100010];
inline int conttwo(int n)
{
if(n%2!=0)
return 0;
else
{
int ans=0;
while (n%2==0)
{
ans++;
n>>=1;
}
return ans;
}
}
inline int contfive(int n)
{
if(n%5!=0)
return 0;
else
{
int ans=0;
while (n%5==0)
{
ans++;
n/=5;
}
return ans;
}
}
int main(void)
{
int n,k,dx,ans,i,j,t;
while (~scanf("%d%d",&n,&k))
{
memset(two,0,sizeof(two));
memset(five,0,sizeof(five));
for (i=1; i<=n; i++)
{
scanf("%d",&pos[i]);
two[i]=conttwo(pos[i]);
five[i]=contfive(pos[i]);
}
if(k<=0)//特判0
{
bool flag=0;
for (i=1; i<=n; i++)
{
if(pos[i]%10!=0)
{
flag=1;
break;
}
}
if(flag)
printf("%d\n",1);
else
printf("%d\n",0);
continue;
}
int l=1,r=1,dx=INF;
int sum5=0,sum2=0;
while (1)
{
while (r<=n&&min(sum5,sum2)<k)
{
sum5+=five[r];
sum2+=two[r];
r++;
}
if(min(sum5,sum2)<k)
break;
dx=min(dx,r-l);
sum5-=five[l];
sum2-=two[l];
l++;
}
if(dx==INF)
printf("haha\n");
else
printf("%d\n",dx);
}
return 0;
}
NOJ——1627Alex’s Game(II)(尺取)的更多相关文章
- 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 ...
- Gym 100703I---Endeavor for perfection(尺取)
题目链接 http://codeforces.com/problemset/gymProblem/100703/I Description standard input/outputStatement ...
- hdu 4123 Bob’s Race 树的直径+rmq+尺取
Bob’s Race Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Probl ...
- Codeforces Round #116 (Div. 2, ACM-ICPC Rules) E. Cubes (尺取)
题目链接:http://codeforces.com/problemset/problem/180/E 给你n个数,每个数代表一种颜色,给你1到m的m种颜色.最多可以删k个数,问你最长连续相同颜色的序 ...
- poj2566尺取变形
Signals of most probably extra-terrestrial origin have been received and digitalized by The Aeronaut ...
- poj2100还是尺取
King George has recently decided that he would like to have a new design for the royal graveyard. Th ...
- hdu 6231 -- K-th Number(二分+尺取)
题目链接 Problem Description Alice are given an array A[1..N] with N numbers. Now Alice want to build an ...
- Codeforces 939E Maximize! (三分 || 尺取)
<题目链接> 题目大意:给定一段序列,每次进行两次操作,输入1 x代表插入x元素(x元素一定大于等于之前的所有元素),或者输入2,表示输出这个序列的任意子集$s$,使得$max(s)-me ...
- cf1121d 尺取
尺取,写起来有点麻烦 枚举左端点,然后找到右端点,,使得区间[l,r]里各种颜色花朵的数量满足b数组中各种花朵的数量,然后再judge区间[l,r]截取出后能否可以供剩下的n-1个人做花环 /* 给定 ...
随机推荐
- SAP标准培训课程C4C10学习笔记(三)第三单元
第三单元:Account and Contact management Account和Contact概念和SAP CRM里是一样的: 并且支持同ERP和CRM的客户主数据做同步. 关于具体的同步场景 ...
- thinkphp 跳转
1 $this -> redirect('index',array('type'=>2,'id'=>0)); //直接跳转 2 $this->success('提交失 ...
- Spark Job具体的物理执行
即使采用pipeline的方式,函数f对依赖的RDD中的数据集合的操作也会有两种方式: 1.f(record),f作用于集合的每一条记录,每次只作用于一条记录 2.f(records),f一次性作用于 ...
- vue validate多表单验证思考 之前写过一个里外层,现在觉得不合适,应该平行的写,然后都给ret,最后判断ret 再做出反应,这样整体表单的所有验证就都报验证,然后最后提交的时候把组件内的对象合并到总的对象,再提交
vue validate多表单验证思考 之前写过一个里外层,现在觉得不合适,应该平行的写,然后都给ret,最后判断ret 再做出反应,这样整体表单的所有验证就都报验证,然后最后提交的时候把组件内的对象 ...
- mongodb 导入导出
F:\Mongodb\bin>mongoexport.exe -h localhost:27017 -d proxy_db -c proxy_tb -o f:/p1.json 导出 -h 服务器 ...
- python class 巩固
class 类定义 语法格式如下: class ClassName: <statement-1> ... <statement-N> 类属性与方法 属性 操作属性 getatt ...
- JDBC操作数据库的详细步骤
1.注册驱动 告知JVM使用的是哪一个数据库的驱动 2.创建连接 使用JDBC中的类,完成对MySQL数据库的连接 3. 得到执行sql语句的Statement对象 通过连接对象获取对SQL语句的执行 ...
- python导出开发环境
1.导出开发环境的依赖包 本地开发完后,再把代码给别人之前,需要 pip freeze > pip123.txt 2.其他环境安装依赖包 pip install -r pip123.txt 其他 ...
- python数据类型之集合(set)和其常用方法
集合是一个无序的,不重复的数据组合 作用(集合的重点):1.去重,把一个列表变成集合就自动去重了2.关系测试,测试两组数据库之前的交集.差集.并集等关系 s = {1, 1, 2, 2, 3, 4, ...
- rs485多主
因复位时I/O口都输出高电平.如果把I/O口直接与RS-485接口芯片的驱动器使能端DE端相连,会在CPU复位其间DE为高,从而使本节点处于发送状态.如果此时总线上其它节点在发送数据,则此次数据传输将 ...