58分漏点:复数个祖宗

B3644 【模板】拓扑排序 / 家谱树

Madokaaa @ 2024-11-05 22:04:56

rt

毕竟也没有人能独自繁衍,是吧


by saydown @ 2024-11-12 10:56:31

啥意思


by __DayLight__ @ 2024-11-20 13:30:30

我的理解:

入度为零的点可能不止 1 个

最开始也是

比如:

3
3 0
3 0
0

@saydown @saydown


by sea_bird @ 2024-12-17 13:51:06

并不是,你这个数据我能A但还是58分


by xyx404 @ 2024-12-26 16:42:03

@Madokaaa

我也是测试点报 Wrong Answer.wrong output format Unexpected end of file - int32 expected,但之后改对了。

我的代码:

```cpp #include<bits/stdc++.h> using namespace std; #define LL long long #define itn int #define ull unsigned long long int n; int in[120]; queue<int>dl; vector<vector<int> >tu(120); int main(){ cin>>n; for(int i=1;i<=n;i++){ int x; while(cin>>x&&x!=0)tu[i].push_back(x),in[x]++; } for(int i=1;i<=n;i++)if(in[i]==0){ cout<<i; dl.push(i);break; } while(dl.empty()==0){ int tamp=dl.front();dl.pop(); for(int i=0;i<tu[tamp].size();i++){ in[tu[tamp][i]]--; if(in[tu[tamp][i]]==0){ cout<<" "<<tu[tamp][i]; dl.push(tu[tamp][i]); } } } return 0; } ``` $100$ 分代码: ```cpp #include<bits/stdc++.h> using namespace std; #define LL long long #define itn int #define ull unsigned long long int n; int in[120]; queue<int>dl; vector<vector<int> >tu(120); int main(){ cin>>n; for(int i=1;i<=n;i++){ int x; while(cin>>x&&x!=0)tu[i].push_back(x),in[x]++; } for(int i=1;i<=n;i++)if(in[i]==0){ cout<<i<<" "; dl.push(i);// 这里的 break 没了 } while(dl.empty()==0){ int tamp=dl.front();dl.pop(); for(int i=0;i<tu[tamp].size();i++){ in[tu[tamp][i]]--; if(in[tu[tamp][i]]==0){ cout<<tu[tamp][i]<<" "; dl.push(tu[tamp][i]); } } } return 0; } ```

|