SCU 4107 consecutive
来源:互联网 发布:windows字体文件 编辑:程序博客网 时间:2024/06/07 18:19
。。明天要大川大校赛。。
趁机把他们的初赛题看了下。。
A了6个水题。。
好吧。。
只是里面的某一题。。
题目链接:http://zuojie.3322.org:88/soj/problem.action?id=4107
题意:给定一个最长10W的只含0,1的序列,你可以将K个0改成1,求更改后的最长连续的全1序列。
貌似很简单的样子。。
类似队列的解法。。始终保证这个队列中的0的数量为K。。记录这个队列的最长长度。。每次循环队列左端都要右移1个。。复杂度是O(N)的。。注意判断序列中0的个数的时候要用到前缀和的预处理来解决。。
代码:
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;main(){ int t; scanf("%d",&t); while(t--) { int n,k; scanf("%d%d",&n,&k); int num[100011]={0}; int sum[100011]={0}; for(int i=1;i<=n;i++) scanf("%d",num+i); sum[1]=num[1]; for(int i=2;i<=n;i++) sum[i]=sum[i-1]+num[i]; int x,y; x=1,y=1; int res=0; while(y<=n) { while((num[y+1]==1)||(y-x+1-(sum[y]-sum[x-1])<k)) y++; res=max(res,min(n,y)-x+1); x++; } printf("%d\n",res); } return 0;}
- SCU 4107 consecutive
- SCU
- SCU
- SCU
- SCU
- 【SCU
- SCU
- SCU
- SCU
- (SCU
- SCU
- SCU
- SCU
- SCU
- SOJ 4107 : consecutive
- scu 3329
- (1183)SCU
- (2035)SCU
- JS序列化数据
- SSL双向认证java实现
- ACM--菲波那契数的余数
- Java SSL 自签名证书生成
- NSSet之于NSArray
- SCU 4107 consecutive
- LED子系统剖析(一)
- Static块什么时候运行
- po dao dto
- SSL单向认证Java实现 Tomcat篇
- c++引用与指针的区别(着重理解)
- java生成证书
- Sample RESTful Website - Contactbook
- Win7下硬盘安装Ubuntu10.10双系统 以及卸载Ubuntu(已验证)