Codeforce 390C
来源:互联网 发布:mac os x能玩剑网三吗? 编辑:程序博客网 时间:2024/05/21 13:43
链接:点击打开链接
题意:给出n,k,w,然后给出一个n位的数字,询问w次,每次输入一个l,r,问需要改动几次使得区间内的数字满足条件(要求l+k-1,l+2*k-1,l+3*k-1......r位的数字为1,其余每一位都必须是0,每次改动只能改动一位)
代码:
#include <cstdio>#include <cstring>#include <iostream>using namespace std;int n,k,w;int s[15][100005],sign[100005],sum[100005];int main(){ //n的范围特别大,但是k的范围最大为10,因为是每隔k个数是1 int i,j,l,r,temp; //因此无论起点是哪一位,都可以转换为从1-k作为起点开始 char c; //所以用一个二维数组记录所有情况 while(scanf("%d%d%d",&n,&k,&w)!=EOF){ getchar(); memset(sign,0,sizeof(sign)); memset(sum,0,sizeof(sum)); memset(s,0,sizeof(s)); for(i=1;i<=n;i++){ scanf("%c",&c); if(c=='1') sign[i]=1; sum[i]=sum[i-1]+sign[i]; //k==1时无论哪一位都是1,只要记录1的个数 } for(i=0;i<k;i++) for(j=1;j<=n;j++){ s[i][j]=s[i][j-1]; if((j-i+1+k)%k==0&&sign[j]==0) s[i][j]++; else if((j-i+1+k)%k!=0&&sign[j]==1) s[i][j]++; }// for(i=0;i<k;i++){// for(j=1;j<=n;j++)// cout<<s[i][j]<<" ";// cout<<endl;// } while(w--){ scanf("%d%d",&l,&r); if(k==1){ printf("%d\n",(r-l+1)-(sum[r]-sum[l-1])); continue; } temp=l%k; printf("%d\n",s[temp][r]-s[temp][l-1]); } } return 0;}
0 0
- Codeforce 390C
- Codeforce # C. Average Score
- CodeForce 279C
- codeforce 237 C D
- Codeforce C. Barcode
- Codeforce 57C Array
- Codeforce 240C Practice
- Codeforce 332C
- codeforce 370C
- codeforce 400 C
- codeforce 6C
- codeforce 12C map
- codeforce 14C
- codeforce 18C
- codeforce 447C
- codeforce 20140808 C. Boredom
- codeforce 492 C D
- (288C)codeforce
- 关于超时的数据库设置
- Optimized Gnome sort: Sorting by Exchanging
- android整合小米、个推、jpush推送
- 猜想一下未来ipv6网络可能的新架构--将颠覆现在的即时通讯中必须使用长连接的现状
- CSS属性
- Codeforce 390C
- springMVC controller注解整理
- 使用链接服务器执行远程数据库上的存储过程
- vbscript 文件另存为
- 2015 年天猫双 11 全纪录:疯狂到 912 亿,给大家推荐点装修品牌
- iOS 常用字符串的方法
- Entity Frame Work 4中的数据库优先
- 深入浅出MFC
- 读书随码《php核心技术与最佳实践》 魔术方法__call()实现字符串链式操作