Problem H. The Fence
Posted 天道酬勤007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Problem H. The Fence相关的知识,希望对你有一定的参考价值。
/** 题目:Problem H. The Fence 链接:https://vjudge.net/problem/Gym-101090H 题意:给定一个字符串,只有0或者1; 问:假如两个不同的1之间的0,1数量是k的倍数(包括0倍)则输出这两个1的位置; 思路:%k;直到遇到两个相同的余数,说明之间的01数量为k的倍数。 */ #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1e5 + 10; int vis[N]; char s[N]; int main(){ int k; cin>>k; scanf("%s",s+1); int len = strlen(s + 1); memset(vis,0,sizeof(vis)); for(int i = 1;i <= len;i++){ if(s[i] == ‘1‘){ if(vis[(i + k -1)%k]){ printf("%d %d\n",vis[(k - 1 + i)%k],i); return 0; } vis[i%k] = i; } } printf("0 0\n"); return 0; }
以上是关于Problem H. The Fence的主要内容,如果未能解决你的问题,请参考以下文章
贪心Codeforces 349B.Color the Fence题解
Educational Codeforces Round 73 (Rated for Div. 2) D. Make The Fence Great Again(DP)
Educational Codeforces Round 73 (Rated for Div. 2) D. Make The Fence Great Again
2014-2015 ACM-ICPC, NEERC, Eastern Subregional Contest Problem H. Pair: normal and paranormal(示例代码