两色徽章¶
- 参考时间限制:0.5 秒(参考环境:评测环境与性能;仅供预估)
- 实际时间限制:标准程序在目标评测环境中处理最慢正式测试文件的基准时间的 2 倍,按 0.5 秒的倍数向上取整。
- 内存限制:512 MB
背景故事¶
手工展览准备给每位参展者发一枚红色或蓝色徽章。徽章还没发,意见箱先满了:“我俩绝对不能撞色!”
组织者按收到的顺序处理这些要求。只要还能找到一种配色,满足此前已接受的全部要求和新要求,就答应下来;否则只好把新要求退回。有人甚至在纸条上把自己的名字填了两遍,组织者决定照章办理。
采购员倒是很高兴:红色徽章正在打折。每处理完一张纸条,他都想知道,在满足所有已接受要求的前提下,最多能发出多少枚红色徽章。
(本故事由GPT-6 Sol重写)
形式化问题描述¶
有 \(n\) 个顶点,初始没有边。依次给出 \(m\) 个无向边请求 \((u,v)\) . 若将该边加入当前图后图仍是二分图,则接受该请求并保留这条边;否则拒绝,当前图不变。允许自环和重复请求。
合法二染色是指为每个顶点指定颜色 \(0\) 或 \(1\) ,使每条边的两个端点颜色不同。每次请求后,输出该请求是否被接受,以及当前图的所有合法二染色中,颜色 \(0\) 的顶点数的最大值。每次都可以重新选择配色,不必沿用上一次的方案。
输入格式¶
第一行两个整数 \(n,m\) .
接下来 \(m\) 行,每行两个整数 \(u,v\) ,表示一条边请求。
输出格式¶
对每个请求输出一行两个整数。第一个整数为 \(1\)(接受)或 \(0\)(拒绝),第二个整数为最多能染成颜色 \(0\) 的顶点数。
样例 1¶
输入¶
5 5
1 2
1 3
2 3
4 5
4 1
输出¶
1 4
1 4
0 4
1 3
1 3
解释¶
第三条边会与前两条边构成奇环,因此被拒绝。最后所有顶点连成一个分量,其两个颜色类的大小分别为 \(3\) 和 \(2\) .
样例 2¶
输入¶
1 3
1 1
1 1
1 1
输出¶
0 1
0 1
0 1
数据范围与保证¶
- \(1\le n,m\le 500\,000\) .
- \(1\le u,v\le n\) ;允许 \(u=v\) 和重复边。
数据分组¶
| 分值比例 | 额外条件 |
|---|---|
| 30% | \(n,m\le 15\) |
| 30% | \(n,m\le 5\,000\) |
| 40% | 无额外条件 |