简单题。

先建树,我用邻接表来存了。然后对于每个叶子结点DFS一下,DFS深度超过了K就return,找到了叶子节点就记录下来,最后排个序,然后输出答案。

由于结点编号比较奇葩,所以用两个map来转换一下。这个代码写的很丑,大半夜写的,迷迷糊糊。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<map>
#include<string>
#include<vector>
#include<iostream>
#include<algorithm>
using namespace std; char s[];
map<int, int>zh;
map<int, int>ff;
vector<int>ljb[];
int flag[], rr[];
int ls, K, ye;
int u[], k[];
struct ANS
{
int A, B, C;
}ans[ + ];
int gh = ; bool cmp(const ANS&a, const ANS&b)
{
if (a.A == b.A&&a.B == b.B) return a.C<b.C;
if (a.A == b.A) return ff[a.B]<ff[b.B];
return ff[a.A]<ff[b.A];
}
void DFS(int now, int b)
{
if (b>K) return;
int i;
if (flag[now] == && now != ye)
{
ans[gh].A = ye;
ans[gh].B = now;
ans[gh].C = b;
gh++;
return;
}
for (i = ; i<ljb[now].size(); i++)
{
if (rr[ljb[now][i]] == )
{
rr[ljb[now][i]] = ;
DFS(ljb[now][i], b + );
}
} }
int main()
{
int n, i, j, o;
while (~scanf("%d", &K))
{
scanf("%d", &n);
zh.clear(); ff.clear();
memset(flag, , sizeof(flag));
int p = , tot; gh = ;
zh[] = p;
ff[p] = ;
p++;
for (i = ; i<; i++) ljb[i].clear();
for (o = ; o<n; o++)
{
scanf("%d %s", &k[o], s);
ls = ;
if (zh[k[o]] == ) zh[k[o]] = p, ff[p] = k[o], p++;
flag[zh[k[o]]] = ;
int len = strlen(s);
j = ; tot = ;
for (i = ; i <= len; i++)
{
if (s[i] == ',' || s[i] == '\0')
{
if (zh[ls] == ) zh[ls] = p,ff[p] = ls,p++;
u[tot] = zh[ls], tot++, ls = ;
}
else ls = ls * + s[i] - '';
}
ljb[].push_back(u[]);
ljb[u[]].push_back();
for (i = ; i<tot; i++)
{
ljb[u[i - ]].push_back(u[i]);
ljb[u[i]].push_back(u[i - ]);
}
ljb[u[tot - ]].push_back(zh[k[o]]);
ljb[zh[k[o]]].push_back(u[tot - ]);
}
for (i = ; i<n; i++)
{
ye = zh[k[i]];
memset(rr, , sizeof(rr));
rr[ye] = ;
DFS(ye, );
}
sort(ans, ans + gh, cmp);
for (i = ; i<gh; i++)
{
cout << ff[ans[i].A];
cout << " ";
cout << ff[ans[i].B];
cout << " ";
cout << ans[i].C;
cout << endl;
}
}
return ;
}

ACdream 1728 SJY's First Task的更多相关文章

  1. ACdream 1195 Sudoku Checker (数独)

    Sudoku Checker Time Limit:1000MS     Memory Limit:64000KB     64bit IO Format:%lld & %llu Submit ...

  2. Concepts:Request 和 Task

    当SQL Server Engine 接收到Session发出的Request时,SQL Server OS将Request和Task绑定,并为Task分配一个Workder.在TSQL Query执 ...

  3. .Net多线程编程—任务Task

    1 System.Threading.Tasks.Task简介 一个Task表示一个异步操作,Task的创建和执行是独立的. 只读属性: 返回值 名称 说明 object AsyncState 表示在 ...

  4. nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)

    本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...

  5. windows+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)

    本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分 ...

  6. Openstack Periodic Task

    Openstack Periodic Task 周期性任务在各个模块的manager.py(computer,scheduler,cell,network)中添加. 添加方法:在模块manager类实 ...

  7. MapReduce剖析笔记之三:Job的Map/Reduce Task初始化

    上一节分析了Job由JobClient提交到JobTracker的流程,利用RPC机制,JobTracker接收到Job ID和Job所在HDFS的目录,够早了JobInProgress对象,丢入队列 ...

  8. [Java定时器]用Spring Task实现一个简单的定时器.

    今天做一个项目的的时候需要用到定时器功能.具体需求是: 每个月一号触发一次某个类中的方法去拉取别人的接口获取上一个月份车险过期的用户.如若转载请附上原文链接:http://www.cnblogs.co ...

  9. 定时管理器框架-Task.MainForm

    入住博客园4年多了,一直都是看别人的博客,学习别人的知识,为各个默默无私贡献自己技术总结的朋友们顶一个:这几天突然觉得是时候加入该队列中,贡献出自己微弱的力量,努力做到每个月有不同学习总结,知识学习的 ...

随机推荐

  1. Windows Form简易计算器实现(下)

    陆陆续续更新这个计算器用了一个礼拜了,今天无论如何也要把它更完.笔者有点追求完美,再者每天都有课,晚上还有作业,还有每晚都会写一些其他的博文. 上一次漏了写如何实现计算的.思路如下: 之前得到一个栈2 ...

  2. js导出execl兼容ie Chrome Firefox各种主流浏览器(js export execl)

    第一种导出table布局的表格 <html> <head> <meta charset="utf-8"> <script type=&qu ...

  3. ECMAScript6之数值类型的扩展

    数值类型的扩展 Number.isNaN ES6将isNaN方法从window身上移植到了Number对象上,使用时和ES5中的isNaN方法一样,但是这是Number对象的方法 Number.isN ...

  4. [MFC美化] Skin++使用详解-使用方法及注意事项

    主要分为以下几个方面: 1.Skin++使用方法 2.使用中注意事项 一. Skin++使用方法 SkinPPWTL.dll.SkinPPWTL.lib.SkinPPWTL.h ,将三个文件及相应皮肤 ...

  5. 字符函数库 - cctype 和 climits 中的符号常量

    一. C++从C语言中继承一个与字符相关的.非常方便的函数软件包,他可以简化诸如确定字符是否为大写字母‘数字.标点符号等工作,这些函数的原型在头文件cctype(老式的为ctype.h)中定义的.例如 ...

  6. [转]Python跳过第一行读取文件内容

    from itertools import islice file_name='XXXX' input_file = open(file_name) for line in islice(input_ ...

  7. mac 下mysql

    We've installed your MySQL database without a root password. To secure it run: mysql_secure_installa ...

  8. [UWP小白日记-6]页面跳转过度动画

    前言 在学习中发现页面导航默认是没有过度动画的,直接就导航过去太粗暴了( ̄へ ̄),于是打算上动画结果不言而喻自己进了坑完全不懂动画,然后就是各种疯狂(´・_・`)的搜索资料看了后终于有点头绪. 再后来 ...

  9. java web开发环境搭建:jdk1.8+eclipse+tomcat8.0

    一.安装JDK 1.下载jdk-8-windows-i586.exe 2.双击安装(可以将安装路径选择到自己喜欢的地方) 3.配置环境变量 1.我的电脑->2.右键单击-> 然后将%JAV ...

  10. 子查询 此处该用AND 而不是 WHERE

    条件:有一张账户表,一张订单表. 需求:求出所有role = 2 即客服人员,所有操作成功的订单数量.结果:能查出所有的客服人员名称,以及操作的订单数量(关键点在于,没有操作过订单,则数量显示为0) ...