#P3022. 奇度子图(Odd Degrees)

0
    ID: 8444 传统题 1000ms 128MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>P3022单调队列/栈优化 DP树形DP深度优先搜索图论CSP-S

奇度子图(Odd Degrees)

奇度子图(Odd Degrees)

题目描述

奶牛共和国遭到了入侵!共和国由 NN(1≤N≤500001 \le N \le 50000)座城镇组成,城镇之间由 MM(1≤M≤1000001 \le M \le 100000)条无向道路相连,第 ii 条道路连接城镇 AiA_i 与 BiB_i(1≤Ai,Bi≤N1 \le A_i, B_i \le N,Ai≠BiA_i \ne B_i,保证无重边)。注意共和国不一定连通。

奶牛们得知入侵者计划清点共和国境内的每一条道路,因此打算关闭一部分道路来制造麻烦。请帮助奶牛们选出一个要保留的道路子集,使得每座城镇在保留下来的道路中都恰好连接奇数条道路,或者判定不存在满足条件的方案。

例如,考虑如下奶牛共和国:

1---2
 \ /
  3---4

如果保留道路 2-3、3-1 和 3-4(关闭 1-2),则城镇 1,2,41, 2, 4 的度数均为 11,城镇 33 的度数为 33,所有城镇的度数均为奇数。

输入格式

第一行包含两个用空格分隔的整数 NN 和 MM。

接下来 MM 行,每行包含两个用空格分隔的整数 AiA_i 和 BiB_i,按输入顺序编号为 1∼M1 \sim M。

输出格式

如果不存在合法方案,仅输出一行一个整数 -1。

否则第一行输出一个整数 KK,表示保留的道路条数;接下来 KK 行每行输出一个 1∼M1 \sim M 之间的整数,表示保留的道路编号(编号必须两两不同,若有多种合法方案输出任意一种即可)。

样例输入 #1

4 4 
1 2 
2 3 
3 1 
3 4 

样例输出 #1

3 
2 
3 
4 

数据范围

对于 100%100\% 的数据,1≤N≤500001 \le N \le 50000,1≤M≤1000001 \le M \le 100000,1≤Ai,Bi≤N1 \le A_i, B_i \le N,Ai≠BiA_i \ne B_i,无重边。本题使用 Special Judge 评测。

知识点与难度

本题涉及的知识点从属于 CSP-S,难度(CF Rating):1900。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1 样例(支持 Special Judge 多解判定)
1 20 2~8 小规模 N≤20,M≤40 / 特殊: 奇点数连通图无解-1 / 特殊: 完美匹配各连通块2点
2 15 9~11 Hack: 含孤立点无解-1 / Hack: 偶总结点但拆为两奇连通块无解-1 / Hack: 多偶连通块森林全有解
3 30 12~20 中规模 N≤5000,M≤10000 / 大规模 N=50000,M=100000 长链与稠密连通块压力
4 25 21~25 随机 N≤50000,M≤100000 回归

出处:原题链接