博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
拓扑排序 soj1075
阅读量:5985 次
发布时间:2019-06-20

本文共 810 字,大约阅读时间需要 2 分钟。

                               1075: BlueEyes and Apples (II)

The Problem

袁源除了喜欢吃苹果外,他在有空的时候还喜欢把苹果按重量由大到小排成一列.当然,这是为了方便以后从最大的开始吃,这样他就能永远都吃到最大的!但是他只有一部没有砝码的天平,于是他每次只能比较两个苹果的重量。现在就要请你帮忙,如果每次只给出两个苹果的重量关系,怎样才能把这些苹果都排列好呢?

输入

本题包括多组测试数据.每组测试数据的第一行为一个整数n(1<=n<=20),代表一共的比较次数,接下来的n行,每行包括两个大写字母x和y,代表x的重量大于y.当n=0时代表输入结束,这组数据不包括在需要计算的数据中.

输出

对每一组输入数据,输出一个排列方案。对于每一组输入数据,有且只有唯一的一种排列方案.

样例输入

3A BB CC D4A BA CD AC B0

样例输出

A B C DD A C B
题意:给出一组输入,将输入按照从小到大的顺序输出。
看第一组数据:
A B 即A-->B;B C 即 B-->C,即A-->B-->C;C D 即C-->D,A-->B-->C-->D;
看第二组数据:
A B 即A-->B;A C 即A-->C,即
;C B,即;D A,即
从上面分析可以看出,其实输出序列就是该有向图的拓扑排序序列。
#include
#include
#include
#include
#define MAX 26usingnamespace std;int map[MAX][MAX];int indegree[MAX];int p[MAX];void toposort(char s[MAX]) //进行拓扑排序 { int i,j,k,t; t=0; for(i=0;i

转载地址:http://ewylx.baihongyu.com/

你可能感兴趣的文章
cocos2d-x分别在Visual Studio和eclipse中设置启用Box2D
查看>>
解析Disruptor:ring buffer有什么特别的?
查看>>
TensorFlow学习笔记--自定义图像识别
查看>>
异常类
查看>>
Python图表绘制:matplotlib绘图库入门
查看>>
01.Redis 初体验
查看>>
noip2013 转圈游戏
查看>>
计算几何-poj2451-HPI
查看>>
第零篇、HTML5简介
查看>>
功能覆盖率
查看>>
[bzoj2333] 棘手的操作
查看>>
三目运算符
查看>>
is和==的区别以及编码、解码
查看>>
ListView滑动删除
查看>>
asp怎样显示当前页的在线人数
查看>>
程序员创业生死一线 最后归宿在哪里?
查看>>
python delete数据
查看>>
IDEA 类图功能使用方法
查看>>
java - day007 - 继承(2), 多态,面向对象,抽象类
查看>>
最长回文数的理解
查看>>