【未完工题解】CF2110E Melody
一:【题意】
给你 \(n\) 个二元组,要求满足:
1.对于每个 \(i,a[i]=a[i+1] or b[i]=b[i+1]\)
2.对于每个 \(i\) 都不能有 \(a[i]=a[i+1]=a[i+2]\) 或 \(b[i]=b[i+1]=b[i+2]\)
问是否有解,如果有输出方案
\(n<=2*10^5\)
二:【解法】
从 \(a_{1...n}\) 和 \(b_{1...n}\) 的值域上考虑,建立 \(2*n\) 个点
如果存在二元组 \((a_i,b_i)\) ,那么在 \(a_i\) 和 \(b_i\) 对应的节点之间连边
容易发现这是张二分图,问题也转化成了求二分图上的欧拉路径
记录节点顺序,映射回去即可
三:【代码】
(施工中)

浙公网安备 33010602011771号