2 条题解
-
0
by hansang:
#include<bits/stdc++.h> using namespace std; const int N=5010; int a[N], b[N]; int main(){ int n; scanf("%d", &n); for(int i=1; i<=n; i++){ char s[5]; scanf("%s", s); if(s[0]=='B') a[i]=0; else a[i]=1; } int ans=1e9, res=1e9; for(int k=1; k<=n; k++){ memset(b, 0, sizeof(b)); bool flag=1;int m=0, sum=0; for(int i=1; i<=n; i++){ sum^=b[i]; if(!(a[i]^sum)){ if(i+k-1>n) {flag=0;break;} sum^=1; b[i+k]^=1; m++; } } if(flag && m<=res) res=m, ans=k; } printf("%d %d\n", ans, res); return 0; } -
0
by hansang:
#include<bits/stdc++.h> using namespace std; const int N=5010; int a[N], b[N]; int main(){ int n; scanf("%d", &n); for(int i=1; i<=n; i++){ char s[5]; scanf("%s", s); if(s[0]=='B') a[i]=0; else a[i]=1; } int ans=1e9, res=1e9; for(int k=1; k<=n; k++){ memset(b, 0, sizeof(b)); bool flag=1;int m=0, sum=0; for(int i=1; i<=n; i++){ sum^=b[i]; if(!(a[i]^sum)){ if(i+k-1>n) {flag=0;break;} sum^=1, b[i+k]^=1; m++; } } if(flag && m<=res) res=m,ans=k; } printf("%d %d\n", ans, res); return 0; }
- 1
信息
- ID
- 2632
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 8
- 已通过
- 3
- 上传者