蒟蒻求助(四个AC剩下全RE)

P1127 词链

数组开大点?
by wjl_100930 @ 2023-08-13 11:16:32


@[wjl_100930](/user/734249) 已经试过了
by KingGojianOfYue @ 2023-08-13 11:24:32


你RE的点上显示的是 ```Segmentation fault with invalid memory reference.``` 可能是数组越界了
by wjl_100930 @ 2023-08-13 11:27:24


你的vector空间太大了,我做了一点点修改 不re,但是有wa的,因为我不清楚你的思路是怎么样的,我把vector里面存的东西改为int了 ```cpp #include<bits/stdc++.h> using namespace std; string s[10001],c; int n,z,x; int f[128]; vector<int>v[128]; int main() { scanf("%d",&n); for(int i=0;i<n;i++){ cin>>s[i]; f[s[i][0]]++; f[s[i][s[i].size()-1]]--; } for(int i=0;i<128;i++){ if(f[i]>0){ z+=f[i]; x=i; } }if(z>1){ printf("***"); } sort(s,s+n); for(int i=n-1;i>=0;i--){ v[s[i][0]].push_back(i); } if(z==1){ for(int i=0;i<n;i++){ if(i)printf("."); c=s[v[x][v[x].size()-1]]; printf("%s",c.c_str()); v[x].pop_back(); x=c[c.size()-1]; } }else{ for(int i=0;i<128;i++){ if(!v[i].empty()){ x=i; break; } } for(int i=0;i<n;i++){ if(i)printf("."); c=s[v[x][v[x].size()-1]]; printf("%s",c.c_str()); v[x].pop_back(); x=c[c.size()-1]; } } return 0; } ```
by mori_ @ 2023-08-13 11:32:03


@[zhangziyue2357](/user/765376)
by mori_ @ 2023-08-13 11:32:14


判断无解的代码我没改你的,但是判错了,你再看看吧
by mori_ @ 2023-08-13 11:37:06


@[mori_](/user/339311) 谢大佬指点
by KingGojianOfYue @ 2023-08-13 13:47:45


|