QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#127448#6634. Central SubsetshielderWA 1ms14264kbC++202.4kb2023-07-19 18:04:302023-07-19 18:04:34

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-07-19 18:04:34]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:14264kb
  • [2023-07-19 18:04:30]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5+10;
vector<int> v[N], e[N];
int a[N], b[N];
int dis[N], dep[N];
bool vis[N];
vector<int> ans;
int n, m, k;
int x, y;
int ed, mxdis, st;int _tmp;
// void bfs(int st){
//     mxdis= 0;
//     queue<int> q;
//     q.push(st);
//     dis[st] = 0;
//     vis[st] = 1;
//     while(!q.empty()){
//         int x = q.front();
//         q.pop();
//         for(auto y : v[x]){
//             if(vis[y]) continue;
//             vis[y] = 1;
//             e[x].push_back(y);
//             dis[y] = dis[x] + 1;
//             q.push(y);
//         }
//     }
// }
void _dfs(int x){
    if(vis[x]) return;
    vis[x]=1;
    for(auto y:v[x]){
        if(vis[y]) continue;
        _dfs(y);
        dis[x]=max(dis[x],dis[y]+1);
    }
    if(dis[x]>k || x==1){ans.push_back(x);dis[x]=-1;}
}
// int dfs(int x){
//     if(e[x].size() == 0){
//         dep[x] = 0;
//         return 0 ;
//     }
//     int mx = 0;
//     for(auto y : e[x]) mx = max(dfs(y), mx);
//     ++mx;
//     dep[x]=mx;
//     if((mx == k || mx %(2*k)==0)){
//        ans.push_back(x);
//     }
//     return mx;
// }
// int dfs_1(int x){
//     if(e[x].size() == 0){
//         dep[x] = 0;
//         return 0 ;
//     }
//     int mx=0;
//     for(auto y : e[x]) mx = max(dfs_1(y), mx);
//     ++mx;
//     return mx;
// }

int main(){
    int tt;
    cin >> tt;
    while(tt--){
        cin >> n >> m;
        ans.clear();
        k = ceil(sqrt(n));

        for(int i = 1;i <= m;i++){
            cin >>x >> y;
            v[x].emplace_back(y);
            v[y].emplace_back(x);
        }
        // if(n == 1){
        //     cout << "1\n1\n";
        //     continue;
        // }
        // st=1;
        // bfs(st);//cout << "-----------\n";
        // _tmp=dfs_1(st);
        // dfs(st);
        // ans.push_back(st);
        _dfs(1);
        if(ans.size() > k) cout << "-1\n";
        else{
            // if(ans.size()==0) ans.push_back(st);
            cout <<ans.size() << "\n";
            for(auto x : ans) cout <<x << " ";
            cout << "\n";
        }
        for(int i = 1;i <= n;i++){
            v[i].clear();
            e[i].clear();
            vis[i] = 0;
        }
   }
   return 0;
}
/*
16 15
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
14 15
15 16
*/

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 1ms
memory: 14264kb

input:

2
4 3
1 2
2 3
3 4
6 7
1 2
2 3
3 1
1 4
4 5
5 6
6 4

output:

1
1 
1
1 

result:

wrong answer Condition failed: "getMaxBfsDist(n, subset) <= csqrtn" (test case 1)