题意:删除一棵树上的叶子 每删除一片叶子就写下连着该片叶子的节点  让你还原一棵树

记录每个节点连着的叶子数 0表示此时这个节点就是叶子  -1表示这个节点已经删除 删除的只能是0  就是说是叶子 暴力一下就好了

#include <cstring>
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
vector<int> g[7550];
int a[7550];
int b[7550];
int main()
{
int n = 0;
memset(b , 0, sizeof(b));
while(scanf("%d",&a[n]) == 1)
{
b[a[n]]++;
n++;
}
for(int i = 1; i <= n+1; i++)
g[i].clear();
for(int i = 0; i < n; i++)
{
if(b[a[i]] > 0)
{
for(int j = 1; j <= n+1; j++)
if(b[j] == 0)
{
g[a[i]].push_back(j);
g[j].push_back(a[i]);
b[j]--;
b[a[i]]--;
break;
}
}
}
for(int i = 1; i <= n+1; i++)
{
sort(g[i].begin(), g[i].end());
printf("%d:",i);
int len = (int)g[i].size();
for(int j = 0; j < len; j++)
printf(" %d",g[i][j]);
puts("");
}
return 0;
}

ural 1069的更多相关文章

  1. ural 1069. Prufer Code

    1069. Prufer Code Time limit: 0.25 secondMemory limit: 8 MB A tree (i.e. a connected graph without c ...

  2. URAL 1069 Prufer Code(模拟)

    Prufer Code Time limit: 0.25 secondMemory limit: 8 MB A tree (i.e. a connected graph without cycles) ...

  3. URAL 1069 Prufer Code 优先队列

    记录每个节点的出度,叶子节点出度为0,每删掉一个叶子,度数-1,如果一个节点的出度变成0,那么它变成新的叶子. 先把所有叶子放到优先队列中. 从左往右遍历给定序列,对于root[i],每次取出叶子中编 ...

  4. 并查集补集作法 codevs 1069 关押罪犯

    1069 关押罪犯 2010年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解       题目描述 Description ...

  5. HDU 1069 dp最长递增子序列

    B - Monkey and Banana Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I6 ...

  6. 后缀数组 POJ 3974 Palindrome && URAL 1297 Palindrome

    题目链接 题意:求给定的字符串的最长回文子串 分析:做法是构造一个新的字符串是原字符串+反转后的原字符串(这样方便求两边回文的后缀的最长前缀),即newS = S + '$' + revS,枚举回文串 ...

  7. ural 2071. Juice Cocktails

    2071. Juice Cocktails Time limit: 1.0 secondMemory limit: 64 MB Once n Denchiks come to the bar and ...

  8. ural 2073. Log Files

    2073. Log Files Time limit: 1.0 secondMemory limit: 64 MB Nikolay has decided to become the best pro ...

  9. ural 2070. Interesting Numbers

    2070. Interesting Numbers Time limit: 2.0 secondMemory limit: 64 MB Nikolay and Asya investigate int ...

随机推荐

  1. JavaScript学习笔记(12)——JavaScript自定义对象

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. Git 的简单使用

    一直在使用Git,仅限于简单的使用,但还是记不住几个简单.在这边总结一下,加深印象,也方便查找. 安装Git 平常主要在windows和ubuntu上工作,就以windows为例,Linux和Mac平 ...

  3. Contest1065 - 第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)B一个简单的问题

    题目描述 这是一个三层的字母塔. 如何输出一个任意层数的字母塔呢? 输入 一个数字n(1<=n<=26),表示字母塔的层数 注意  此题多组输入 输出 n层的字母塔 样例输入 3 4 样例 ...

  4. CSMA-CA介绍

    本文主要介绍通讯领域中CSMA相关机制,本文全部资料来自于网络.   网络通讯,必须依靠介质来传递数据,将数据调制到模拟信号上,再把此信号通过介质传递到远方.根据介质的不同,分为有线网络和无线网络.为 ...

  5. 第五章 体验Qt Creator的神奇魅力

    第五章 体验Qt Creator的神奇魅力 Qt Creator是官方提供的一个轻量级IDE(集成开发环境),功能强大,是程序员快速开发程序的有力助手.下面我们用它实现一个helloworld工程. ...

  6. antuomake 生成configure的使用

    configure 作为编译配置脚本,有大量选项可供不同编译需求,这些选项直 接作用到最终生成的Makefile文件 问题:automake默认的gcc编译选项为-Wall -O2 -g,怎么改为我们 ...

  7. get post

    浅谈HTTP中Get与Post的区别 2009-03-31 14:51 by hyddd, 248341 阅读, 74 评论, 收藏, 编辑 Http定义了与服务器交互的不同方法,最基本的方法有4种, ...

  8. 弹性布局学习-详解 justify-content(三)

    弹性布局学习-详解 justify-content(三)

  9. node.js:怎样同时执行多条SQLs,且只有一个回调

    本文主要介绍开源node.js库mysql-queries,其可以同时执行多条SQLs,且只有一个回调.同时抛砖引玉,与大家交流node.js开发经验. node.js很大的特点就是事件驱动.非阻塞和 ...

  10. sublime 编辑完自动生成tmp的备份

    是安装phptool之后造成的,卸载即可 http://bbs.csdn.net/topics/390826865