第一个点到底怎么了?

P1203 [USACO1.1] 坏掉的项链 Broken Necklace

@[pengzijun](/user/556362) USACO 的题的前几组数据就是样例,不需要大惊小怪~
by wsyhb @ 2021-09-17 23:20:46


@[wsyhb](/user/145355) 不是,我的意思是我测试点下载过了,但加上去不行。 ```cpp #include<bits/stdc++.h> using namespace std; int n,ans=1,sum,sum1; string s; bool p; int main(){ scanf("%d",&n); cin>>s; s+=s+s; for(int i=0;i<n;i++) for(int j=i;j<i+n;){ sum=sum1=1; p=(s[j]=='w'); while(sum<=n&&(s[j-sum]=='w'||s[j]==s[j-sum]||s[j]=='w')){ if(s[j]=='w') s[j]=s[j-sum]; sum++; } if(p) s[j]='w'; j++; p=(s[j]=='w'); while(sum1<=n&&(s[j+sum1]=='w'||s[j]==s[j+sum1]||s[j]=='w')){ if(s[j]=='w') s[j]=s[j+sum1]; sum1++; } ans=max(sum1+sum,ans); } printf("%d\n",min(ans,n)); return 0; } ```
by qwq___qaq @ 2021-09-17 23:22:01


@[pengzijun](/user/556362) 数组越界 ```cpp while(sum<=n&&(s[j-sum]=='w'||s[j]==s[j-sum]||s[j]=='w')){ if(s[j]=='w') s[j]=s[j-sum]; sum++; } ``` 改成 ```cpp while(sum<=j …… ``` 即可
by Areka6219 @ 2021-09-18 06:52:24


@[Areka6219](/user/383204) STO 阿热卡da♂lao
by aleph_blanc @ 2021-09-18 06:54:17


@[Areka6219](/user/383204) 谢谢
by qwq___qaq @ 2021-09-18 12:59:02


|