题目传送门

 /*
题意:给出无向无环图,每一个点的度数和相邻点的异或和(a^b^c^....)
图论/位运算:其实这题很简单。类似拓扑排序,先把度数为1的先入对,每一次少一个度数
关键在于更新异或和,精髓:a ^ b = c -> a ^ c = b, b ^ c = a;
*/
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
using namespace std; const int MAXN = 7e4 + ;
const int INF = 0x3f3f3f3f;
int ans[MAXN][];
int d[MAXN], s[MAXN]; int main(void) //Codeforces Round #285 (Div. 2) C. Misha and Forest
{
// freopen ("C.in", "r", stdin); int n;
while (scanf ("%d", &n) == )
{
queue<int> Q;
for (int i=; i<n; ++i)
{
scanf ("%d%d", &d[i], &s[i]);
if (d[i] == ) Q.push (i);
} int cnt = ;
while (!Q.empty ())
{
int u = Q.front (); Q.pop ();
if (d[u] == ) continue;
int v = s[u];
ans[++cnt][] = u; ans[cnt][] = v;
if ((--d[v]) == ) Q.push (v);
s[v] = s[v] ^ u;
} printf ("%d\n", cnt);
for (int i=; i<=cnt; ++i)
{
printf ("%d %d\n", ans[i][], ans[i][]);
}
} return ;
}

最新文章

  1. 一款批量修改AE模板的工具
  2. A星寻路算法介绍
  3. jsoup-处理html中的script数据
  4. ubuntu远程桌面连接windows系统(转)
  5. Oracle 数据库安装
  6. 应用dom4j读取xml的例子
  7. Web安全--使用Salt + Hash将密码加密后再存储进数据库
  8. SQL2008-功能设置
  9. osg配置
  10. Django之ORM基础
  11. 解决error while loading shared libraries的通用方案
  12. 05 Tensorflow中变量的初始化
  13. Shell获取某目录下所有文件夹的名称
  14. 《Python》网络编程基础
  15. JVM底层又是如何实现synchronized的【转载】
  16. python3+unittest+HTMLTestRunner
  17. 大数据入门第二十二天——spark(二)RDD算子(1)
  18. jenkins之参数化构建
  19. 转 linux 权限
  20. PropertySheet

热门文章

  1. Java: 创建自带依赖库的Jar包
  2. django 简易博客开发 2 模板和数据查询
  3. 【转】从头说catalan数及笔试面试里那些相关的问题
  4. [RxJS] Create a Reusable Operator from Scratch in RxJS
  5. Android ListView异步载入图片乱序问题,原因分析及解决方式
  6. 使用python生成c文件模板
  7. Windows server 2003 + IIS6 搭建Asp.net MVC执行环境
  8. UNIX网络编程学习(9)--getsockname和getpeername的用法及实例(转)
  9. Real-Time Compressive Tracking 论文笔记
  10. Redis管理key命令