1 条题解
-
0
#include<bits/stdc++.h> using namespace std; const int N= 50050; vector<pair<int, int>> G[N]; vector<int> p; bool vis[N]; bool dfs(int x) { vis[x]=true; int du=0; for(auto i:G[x])if(!vis[i.first]) { int y=i.first,id=i.second; if(dfs(y)) { du++; p.push_back(id); } } return du%2==0; } int main() { int n,m;scanf("%d%d",&n,&m); for(int i=1,x,y;i<=m;i++) { scanf("%d%d",&x,&y); G[x].push_back({y,i}); G[y].push_back({x,i}); } memset(vis,0,sizeof(vis)); for(int i=1;i<=n;i++)if(!vis[i]) if(dfs(i)) { printf("-1\n"); return 0; } sort(p.begin(),p.end()); printf("%d\n",p.size()); for(int i=0;i<p.size();i++)printf("%d\n",p[i]); return 0; }
- 1
信息
- ID
- 1552
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 78
- 已通过
- 17
- 上传者