不知道哪错了

P1341 无序字母对

@[Aya_tt](/user/744562) 是不是读入的问题?可能读入了空格之类的,把 $a$ 和 $b$ 输出一下看看。
by NightTide @ 2022-08-08 20:56:00


噢噢噢噢
by Aya_tt @ 2022-08-08 20:57:02


@[降魔大圣](/user/547908) ```c #include<bits/stdc++.h> using namespace std; stack<int> q; int n,G[300][300],del[300],cnt,fir; void dfs(int x){ for(int i = 0;i < 300;i++){ if(G[x][i]){ G[x][i] = G[i][x] = 0; dfs(i); } } q.push(x); } int main() { cin>>n; for(int i = 0;i < n;i++){ string a; cin>>a; G[a[0]][a[1]] = G[a[1]][a[0]] = 1; del[a[0]]++,del[a[1]]++; } for(int i = 0;i < 300;i++){ if(del[i] & 1){ ++cnt; if(!fir){ fir = i; } } } if(!fir) for(int i = 0;i < 300;i++) if(!del[i]) { fir = i; break; } if(cnt && cnt != 2){ cout<<"No Solution"; return 0; } dfs(fir); while(!q.empty()){ char u = q.top(); q.pop(); cout<<u; } } ``` 还是不对
by Aya_tt @ 2022-08-08 21:00:20


@[Aya_tt](/user/744562) 我刚刚看了一下,你的 `fir` 是 $0$。
by NightTide @ 2022-08-08 21:10:00


样例每个字母都出现了两次,这样的话 ```cpp for(int i = 0;i < 300;i++){ if(del[i] & 1){ ++cnt; if(!fir){ fir = i; } } } ``` 这个循环 `dir` 就没有被更新 下面一个循环 ```cpp if(!fir) for(int i = 0;i < 300;i++) if(!del[i]) { fir = i; break; } ``` 每个字母都出现过,所以 `dir` 还是没有被更新。 这样的话在 dfs 时您的 `dir` 就是 $0$,所以 dfs 没有结果。
by TheSky233 @ 2022-08-08 21:11:12


*是 fir,打错了
by TheSky233 @ 2022-08-08 21:11:33


@[Aya_tt](/user/744562) 你 $34$ 行不应该是 `if(del[i])` 吗?如果是 `if(!del[i])` 的话 `fir` 会是 $0$ 啊! 代码给你改好了,你看看。 ``` #include<bits/stdc++.h> using namespace std; stack<int> q; int n,G[300][300],del[300],cnt,fir,ed; void dfs(int x){ for(int i = 0;i < 300;i++){ if(G[x][i]){ G[x][i] = G[i][x] = 0; dfs(i); } } q.push(x); } int main() { cin>>n; for(int i = 0;i < n;i++){ string a; cin>>a; G[a[0]][a[1]] = G[a[1]][a[0]] = 1; del[a[0]]++,del[a[1]]++; } for(int i = 0;i < 300;i++){ if(del[i] & 1){ ++cnt; if(!fir){ fir = i; }else{ ed = i; } } } if(!fir) for(int i = 0;i < 300;i++) if(del[i]){ fir = i; break; } if(cnt && cnt != 2){ cout<<"No Solution"; return 0; } dfs(fir); while(!q.empty()){ char u = q.top(); q.pop(); cout<<u; } } ```
by NightTide @ 2022-08-08 21:12:21


@[降魔大圣](/user/547908) 加入fir是char是不是也行?
by Aya_tt @ 2022-08-08 21:14:07


@[Aya_tt](/user/744562) ?什么意思?
by NightTide @ 2022-08-08 21:14:56


|