Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
38877 LYLAKIOIAKIOI 【BJ】T1 C++ 运行出错 20 23 MS 47256 KB 1781 2025-11-10 20:48:06

Tests(5/8):


#include<bits/stdc++.h> using namespace std; const int N=1e6+10; int n,m; vector<int> E[N],cyc[N]; int dfn[N],low[N],bel[N],du[N]; bool in_q[N],in_c[N],vis[N],ok[N];stack<int> stk; int dc=0,bc=0; void tj(int u,int pa){ dfn[u]=++dc;low[u]=dfn[u]; stk.push(u);in_q[u]=1; bool flg=0; for(auto v:E[u]){ if(!dfn[v]){ tj(v,u); low[u]=min(low[u],low[v]); }else if(flg||v!=pa){ low[u]=min(low[u],dfn[v]); }else{ flg=1; } } if(dfn[u]==low[u]){ ++bc; while(!stk.empty()){ int p=stk.top();stk.pop(); bel[p]=bc;cyc[bc].push_back(p); if(p==u) break; } if(cyc[bc].size()>1){ for(auto ed:cyc[bc])in_c[ed]=1; } } } void bfs(){ queue<int> q; for(int i=1;i<=n;i++){ if(du[i]&1) q.push(i),vis[i]=1; } while(!q.empty()){ int p=q.front();q.pop(); if(in_c[p]){ ok[p]=1;continue; } for(auto ed:E[p]){ if(vis[ed]) continue; vis[ed]=1;q.push(ed); } } } int main(){ //freopen("graph.in","r",stdin); //freopen("graph.out","w",stdout); ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin>>n>>m; for(int i=1;i<=m;i++){ int u,v;cin>>u>>v; E[u].push_back(v); E[v].push_back(u); du[u]++;du[v]++; }tj(1,0);bfs(); int res=0; for(int i=1;i<=n;i++) res+=(du[i]&1); res/=2; for(int i=1;i<=bc;i++){ int cnt=0; if(cyc[i].size()>1){ for(auto ed:cyc[i]) if(ok[ed]) cnt++; if(cnt<=1) res++; } }cout<<res<<endl; return 0; }


测评信息: