【Codeforces 501C】Misha and Forest
【链接】 我是链接,点我呀:)
【题意】
给你一棵树
但是每个节点只告诉你出度个数
以及所有和它相连的点的异或和.
让你还原这棵树
【题解】
叶子节点的话,他所有节点的异或和就是它那唯一的一个爸爸
因此,弄个拓扑排序,从最下层一直往上面进行拓扑排序,每次找到它的爸爸之后,就将这个儿子删掉.让爸爸的出边递减。
同时更新爸爸的异或和,直到爸爸没有儿子为止(也变成叶子节点了)。
(如果某个时刻chu[x]==0,那么x肯定是根节点了,说明找边的工作结束了。)
【代码】
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1<<16;
const long long M = 15e6;
int n;
int chu[N+10],sum[N+10];
int tot = 0;
queue<int> dl;
int main(){
ios::sync_with_stdio(0),cin.tie(0);
cin >> n;
for (int i = 0;i < n;i++){
cin >> chu[i] >> sum[i];
tot+=chu[i];
if (chu[i]==1){
dl.push(i);
}
}
cout<<tot/2<<endl;
while (!dl.empty()){
int x = dl.front();dl.pop();
if (chu[x]==0) continue;
chu[x] = 0;
int y = sum[x];
cout<<x<<" "<<y<<endl;
sum[y]^=x;
chu[y]--;
if (chu[y]==1){
dl.push(y);
}
}
return 0;
}
【Codeforces 501C】Misha and Forest的更多相关文章
- 【CodeForces 504A】Misha and Forest
题 题意 有n个点,代号分别为0到n-1,然后这n个点有d个相连点,相连点的XOR sum 为s,求所有的边. 分析 知识:a^b^a=b,a^b^b=a. 把相连点为1的i存进队列,i的唯一相连点就 ...
- 【codeforces 755C】PolandBall and Forest
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- 【codeforces 501D】Misha and Permutations Summation
[题目链接]:http://codeforces.com/problemset/problem/501/D [题意] 给你两个排列; 求出它们的字典序num1和num2; 然后让你求出第(num1+n ...
- 【CodeForces - 501B 】Misha and Changing Handles(map)
Misha and Changing Handles CodeForces原题是英文,这里就直接上中文好了,翻译不是太给力,但是不影响做题 ^▽^ Description 神秘的三角洲里还有一个传说 ...
- 【codeforces 415D】Mashmokh and ACM(普通dp)
[codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=200 ...
- 【25.64%】【codeforces 570E】Pig and Palindromes
time limit per test4 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 【codeforces 707E】Garlands
[题目链接]:http://codeforces.com/contest/707/problem/E [题意] 给你一个n*m的方阵; 里面有k个联通块; 这k个联通块,每个连通块里面都是灯; 给你q ...
- 【codeforces 707C】Pythagorean Triples
[题目链接]:http://codeforces.com/contest/707/problem/C [题意] 给你一个数字n; 问你这个数字是不是某个三角形的一条边; 如果是让你输出另外两条边的大小 ...
- 【codeforces 709D】Recover the String
[题目链接]:http://codeforces.com/problemset/problem/709/D [题意] 给你一个序列; 给出01子列和10子列和00子列以及11子列的个数; 然后让你输出 ...
随机推荐
- jquery input 赋值和取值
记录一下: 在写一个input赋值,二话不说就直接利用了$('#xx').val()来进行取值和赋值,取值ok,赋值后利用alert显示正确,但是在html上并没有正确的显示出来,后来改为使用如下代码 ...
- Eclipse出现Class Not Found异常时可以参考我所知道的一个方案
如过你出现Class Not Found异常,可以参考以下这个解决方案 打开Properties for projectName面板-->Deploment Assembly--:查看有没有缺失 ...
- bzoj 1575: [Usaco2009 Jan]气象牛Baric【dp】
完了不会dp了 设f[i][j]为以i结尾,有j个时的最优值,辅助数组g[i][j]为s选了i和j,i~j中的误差值 转移是f[j][i]=min(f[k][i-1]+g[k][j]) #includ ...
- P3564 [POI2014]BAR-Salad Bar
传送门 我是来帮加藤大佬写题解的--全世界都没找到加藤大佬写法的说明--很难受-- 首先我们把\(p\)看成\(1\),\(j\)看成\(-1\),一个区间满足条件就意味着这个区间的所有前缀和都大于等 ...
- 学习css盒子模型
在这一周,我学习了css,在没有学习css之前,我一直都觉得布局很难,样式特别难调,但是学习了css盒子模型之后我就觉得欸,其实还挺简单的,下面就来看看我学习的css吧. CSS 盒子模型(Box M ...
- 公司4:JrVue主题定制
JrVue是我们基于element重新封装的一套组件库; 具体组件使用方法可以mnote->研发小组查看; 这里我们定制了一套主题色, 具体变动如下: 1.主题色变动: mfront有蓝.紫. ...
- {Python}安装第三方包(setup.py)
在github上下载了records文件到本地. 解压文件 cmd切换到文件setup.py的目录下 先执行 python setup.py build 再执行python setup.py inst ...
- UML中类之间的关系
UML中类之间的关系分为以下几种:依赖.关联.泛化.聚合.组合. 依赖是指一个类使用了另一个类,它是一种使用关系,描述了一个事物的规格说明的变化可能会影响到使用它的另一个事物(反之不一定).最常见的依 ...
- Spring.Net学习笔记(1)-容器的使用
一.下载地址: http://www.springframework.net/download.html 二.相关程序集 Spring.Net容器定义在程序集Spring.Core.dll中,它依赖于 ...
- javascript 数字日期格式转换为中文
写一个函数,把数字日期如2014-06-21转换为 二零一四年六月二十一日星期三 function convert(dateStr) { var dict = { "0": &qu ...