#P3022. [USACO11OPEN] Odd degrees G

    ID: 2061 远端评测题 1000ms 125MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>动态规划,dp2011USACO单调队列Special Judge

[USACO11OPEN] Odd degrees G

Description

奶牛们正在遭受入侵!它们的共和国由 NN 个城镇组成(1N50,0001 \leq N \leq 50,000),这些城镇通过 MM 条无向路径连接(1M100,0001 \leq M \leq 100,000),每条路径连接两个城镇 AiA_iBiB_i1AiN1 \leq A_i \leq N1BiN1 \leq B_i \leq NAieqBiA_i eq B_i;不会出现重复路径)。然而,共和国不一定是连通的——可能存在无法通过路径到达彼此的城镇对。

奶牛们知道入侵者计划对它们共和国内的每一条路径进行清点,所以它们愿意关闭各种路径,以使入侵者的工作尽可能困难。

请帮助奶牛们找到一种关闭路径子集的方法,使得每个城镇连接的剩余路径数为奇数,或者确定不存在这样的子集。

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

1---2 \ / 3---4 如果我们保留路径 1-3、2-3 和 3-4,并移除路径 1-2,那么城镇 1、2 和 4 将成为正好一条路径的端点,而城镇 3 将成为三条路径的端点:

1 2 \ / 3---4

Input Format

* 第 1 行:两个用空格分隔的整数:NNMM

* 第 2 行到第 M+1M+1 行:第 i+1i+1 行包含两个用空格分隔的整数:AiA_iBiB_i

Output Format

* 第 1 行:一个整数,表示要保留的路径数量。如果不存在这样的子集,则仅输出一行,包含整数 -1。

* 第 2 行到第 K+1K+1 行:每行包含一个要保留的路径的索引,范围为 1 到 MM。这些索引必须两两不同。

4 4 
1 2 
2 3 
3 1 
3 4 

3 
2 
3 
4 

Hint

感谢 @cn:苏侨念 提供的 Special Judge(由 ChatGPT 4o 翻译)