QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#665589#8333. GiftFighoh#Compile Error//C++202.8kb2024-10-22 14:16:412024-10-22 14:16:43

Judging History

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

  • [2024-10-22 14:16:43]
  • 评测
  • [2024-10-22 14:16:41]
  • 提交

answer

#include <climits>
#include <iostream>
#include <random>
#include <vector>
#include <set>
using namespace std;

#define ll        long long
#define ull       unsigned long long
#define fir       first
#define sec       second
#define pii       pair<int, int>
#define pll       pair<long long, long long>
#define lowbit(a) (a & (-a))
#define SZ(a)     ((int)a.size())
#define all(a)    a.begin(), a.end()

constexpr int N = 2e5 + 50;
constexpr int INF = 0x3f3f3f3f;
constexpr ll LINF = 0x3f3f3f3f3f3f3f3f;
constexpr int mod = 998244353;
constexpr int dir[4][2] = {
    {-1,  0},
    { 0,  1},
    { 1,  0},
    { 0, -1},
};

mt19937_64 rnd(random_device{}());
uniform_int_distribution<ull> dist(0, ULLONG_MAX); // use dist(rnd)

vector<int>to[N];
int d[N],tmp[N];
multiset<int>st;
void solve() {
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        int u,v;
        cin>>u>>v;
        to[u].push_back(v);
        to[v].push_back(u);
        d[u]++;
        d[v]++;
    }
    queue<int>q;
    int cnt[2];
    for(int i=1;i<=n;i++){
        tmp[i]=d[i];
        st.insert(d[i]);
        if(d[i]==1){
            q.push(i);
        }
        cnt[d[i]<=3]++;
    }
    vector<int>vis(n+1);
    while(!q.empty()){
        int x=q.front();
        q.pop();
        vis[x]=1;
        for(auto it:to[x]){
            tmp[it]--;
            if(tmp[it]==1){
                q.push(it);
            }
        }
    }
    int Ans=0;
    for(int i=1;i<=n;i++){
        if(!vis[i]){
            for(auto it:to[i]){
                if(!vis[it]){
                    st.erase(st.lower_bound(d[i]));
                    st.erase(st.lower_bound(d[it]));
                    st.insert(d[i]-1);
                    st.insert(d[it]-1);
                    if(d[i]-1==3){
                        cnt[1]++;
                        cnt[0]--;
                    }
                    if(d[it]-1==3){
                        cnt[1]++;
                        cnt[0]--;
                    }
                    if(*st.begin()<=3&&*st.rbegin()<=4){
                        Ans+=d[1];
                    }
                    st.erase(st.lower_bound(d[i]-1));
                    st.erase(st.lower_bound(d[it]-1));
                    st.insert(d[i]);
                    st.insert(d[it]);
                    if(d[i]-1==3){
                        cnt[0]++;
                        cnt[1]--;
                    }
                    if(d[it]-1==3){
                        cnt[0]++;
                        cnt[1]--;
                    }
                }
            }
        }
    }
    cout<<Ans/2<<'\n';
}

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int _ = 1;
    while (_--)
        solve();
    return 0;
}


详细

answer.code: In function ‘void solve()’:
answer.code:46:5: error: ‘queue’ was not declared in this scope
   46 |     queue<int>q;
      |     ^~~~~
answer.code:6:1: note: ‘std::queue’ is defined in header ‘<queue>’; did you forget to ‘#include <queue>’?
    5 | #include <set>
  +++ |+#include <queue>
    6 | using namespace std;
answer.code:46:11: error: expected primary-expression before ‘int’
   46 |     queue<int>q;
      |           ^~~
answer.code:52:13: error: ‘q’ was not declared in this scope
   52 |             q.push(i);
      |             ^
answer.code:57:12: error: ‘q’ was not declared in this scope
   57 |     while(!q.empty()){
      |            ^