自测多组例子和已通过的代码输出都一样 但是提交case通过率一直是0 检查了很多遍格式也没有问题 求大佬指导一下
#include<bits/stdc++.h> using namespace std; vector<int> edge[1005]; int n, v, e,vis[1005]; int ans = 0,rollsum=0; void bfs(int head) { if (vis[head])return; int k[1005]; int roll = 0; queue<int> q; q.push(head); vis[head] = 1; for (auto z : edge[head])k[z] = head; //z点因head点入列 while (!q.empty()) { int ex = q.front(); q.pop(); for (auto z : edge[ex]) { if (z == k[ex])continue; //跳过让自己入列的点 从而可以判断环 if (vis[z]) { //除了让自己入列的点 遍历到进过队列的点 则存在环 roll++; continue; } q.push(z); vis[z] = 1; k[z] = ex; } } ans++; if (roll)rollsum++; } int main(){ //freopen("zz.txt", "r", stdin); cin >> n; for (int i = 1; i <= n; i++) { printf("Night sky #%d: ", i); ans = rollsum= 0; memset(vis, 0, sizeof vis); bool apper[1005]; memset(apper, false, sizeof apper); cin >> v >> e; for (int i = 1; i <= v; i++)edge[i].clear(); for (int j = 0; j < e; j++) { int f, t; cin >> f >> t; edge[f].push_back(t); edge[t].push_back(f); apper[f] = apper[t] = true; } for (int i = 1; i <= v; i++)if(apper[i]) bfs(i); printf("%d constellations, of which %d need to be fixed. \n\n", ans, rollsum); } return 0; }
全部评论
(0) 回帖