QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#658197#6765. Don't Really Like How The Story EndsCangShuV#Compile Error//C++232.1kb2024-10-19 16:21:102024-10-19 16:21:10

Judging History

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

  • [2024-10-19 16:21:10]
  • 评测
  • [2024-10-19 16:21:10]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

const int N = 1e5 + 5;
set<int> g[N];
// void add(int f, int t) {
//     g[f].insert(t);
//     g[t].insert(f);
// }
void add(int f, int t) {
    g[f].insert(t);

}
void clr(int n) {
    n += 2;
    for (int i = 0; i <= n; ++i) {
        g[i].clear();
    }
}

int res = 0;
int st[N];
int n, m;
int go,cnt;
void dfs(int u){
    for(auto &it:g[u]){
        while(go<it){
            go+=1;
            cnt+=1;
            dfs(go-1);
        }
        if(go==it){
            go+=1;
        }
    }
    
}

// // set<int> stt;
// int dfs(int u, int go) {
//     st[u] = 1;

//     int acc = 0;
//     for (auto &it : g[u]) {
//         if (!st[it]) {
//             if (it == go) {
//                 go = dfs(go, go + 1);
//             } else
//                 acc = 1;
//         }
//     }

//     if (!st[go]) {
//         if (g[u].find(go) != g[u].end()) {
//             go = dfs(go, go + 1);
//         } else {
//             if (acc) {
//                 add(u, go);
//                 ++res;
//                 go = dfs(go, go + 1);
//                 return go;
//             } else {
//                 return go;
//             }
//         }
//     }

//     if (u == 1) {
//         for (int i = 1; i <= n; ++i) {
//             if (!st[i]) {
//                 if (g[1].find(i) == g[1].end()) {
//                     add(1, i);
//                     ++res;
//                 }
//                 dfs(i, i + 1);
//             }
//         }
//     } else {
//         return -1;
//     }
// }
int n,m;
int a, b;
void solve() {
    cin >> n >> m;
    clr(n);
    go=2;
    cnt=0;

    res = 0;
    for (int i = 1; i <= n; ++i)
        st[i] = 0;
    for (int i = 1; i <= m; ++i) {
        cin >> a >> b;
        add(min(a,b), max(a,b));
    }
    add(1,n+1);
    dfs(1);
    cout << cnt << '\n';
}

int main() {
    cin.tie(nullptr)->sync_with_stdio(false);
    int n;
    cin >> n;
    while (n--)
        solve();
    return 0;
}

詳細信息

answer.code:82:5: error: redefinition of ‘int n’
   82 | int n,m;
      |     ^
answer.code:23:5: note: ‘int n’ previously declared here
   23 | int n, m;
      |     ^
answer.code:82:7: error: redefinition of ‘int m’
   82 | int n,m;
      |       ^
answer.code:23:8: note: ‘int m’ previously declared here
   23 | int n, m;
      |        ^