社区讨论
零蛋求条
P14258好感(favor)参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhj0y2a2
- 此快照首次捕获于
- 2025/11/03 18:55 4 个月前
- 此快照最后确认于
- 2025/11/03 18:55 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int T;
void spin(string &s,int n){
string s1=s;
// n++;
for(int i=0;i<n;i++){
s[i]=s1[(i+n+1)%n];
// cout<<s<<endl;
}
}
int main(){
cin>>T;
while(T--){
int n,ans=0,ans1=0;
string s,s1;
cin>>n>>s;
s1=s;
for(int i=0;i<n;){
if(s[i]=='0'){
s[i]='1';
spin(s,i);
ans+=i+1;
}
else{
int j=n-1;
while(j>=0&&s[j]!='0'){
j--;
}
if(j<0){
j=n-1;
i++;
continue;
}
s[j]='1';
// cout<<j<<endl;
spin(s,j);
ans+=j+1;
j=n-1;
}
i++;
// cout<<s<<endl;
}
// cout<<endl;
s=s1;
for(int i=0;i<n;){
if(s[i]=='1'){
s[i]='0';
spin(s,i);
ans1+=i+1;
}
else{
int j=n-1;
while(j>=0&&s[j]!='1'){
j--;
}
s[j]='0';
if(j<0){
j=n-1;
i++;
continue;
}
// cout<<j<<endl;
spin(s,j);
ans1+=j+1;
j=n-1;
}
i++;
// cout<<s<<endl;
}
cout<<min(ans,ans1)<<endl;
}
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...