[BZOJ 3725]Matryca
转载请注明出处:http://danihao123.is-programmer.com/
很有意思的思考题。
这道题通过特殊情况我们可以猜想,假设最近两个不同色块距离为[tex]x[/tex](这是半闭半开序列长度),则答案为[tex]n-x+1[/tex]。然而事实就是如此。
代码:
/**************************************************************
Problem: 3725
User: danihao123
Language: C++
Result: Accepted
Time:216 ms
Memory:1796 kb
****************************************************************/
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=1000001;
char buf[maxn];
int main(){
int n;
register int i,now;
char last_s=0;
scanf("%s",buf);
n=strlen(buf);
register int ans=n;
for(i=0;i<n;i++){
if(buf[i]!='*'){
if(last_s){
if(buf[i]!=last_s){
ans=min(ans,i-now);
last_s=buf[i];
now=i;
}else{
now=i;
}
}else{
last_s=buf[i];
now=i;
}
}
}
printf("%d\n",n-ans+1);
return 0;
}
评论 (0)