3 条题解
-
2
#include<bits/stdc++.h> using namespace std; const int MAXN=5008; int n,k,a[MAXN],f[MAXN<<1],tag,op,ans=MAXN; int ansk,sum; inline int read() { register int x=0,f=1; char s; while((s=getchar())<'0'||s>'9') { s=='-'?f=-1:f=1; } x=s-'0'; while((s=getchar())>='0'&&s<='9') { x=x*10+s-'0'; } return x*f; } int main() { n=read(); for(int i=1;i<=n;i++) { char s; cin>>s; if(s=='B') a[i]=0; if(s=='F') a[i]=1; } for(register int k=1;k<=n;k++) { sum=0;tag=0;op=0; memset(f,0,sizeof(f)); for(register int i=1;i<=n;i++) { if((a[i]+tag)%2==0) { if(i+k-1>n) { op=1; break; } ++sum; ++tag; f[i+k-1]=-1; } if(f[i]==-1) { --tag; f[i]=0; } } if(op) continue; if(sum<ans) { ans=sum; ansk=k; } } printf("%d %d",ansk,ans); return 0; }
- 1
信息
- ID
- 1905
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 93
- 已通过
- 39
- 上传者