『洛谷T7835』士兵站队问题

该博客探讨了一道名为"洛谷T7835"的复杂问题,指出其解决方案核心在于运用TOP排序方法。作者提到,虽然问题表面复杂,但熟悉TOP排序的OI选手能迅速找到解决路径。博客中包含具体的代码实现,以展示如何在基础的TOP排序上添加额外判断,简化难题的求解过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

有N名士兵(1<=N<=26),编号依次为A,B,C,……进行队列训练时,指挥官要把一些士兵从高到矮依次排成一行,但现在指挥官不能直接获得每个士兵的身高信息,只能获得“P1比P2高”这样的比较结果(P1,P2∈{
  A,B,…Z},记为P1>P2),如“A>B”表示A比B高。

编一程序,根据所得到的比较结果求出符合条件的排队方案。

注:比较结果中没有涉及到的士兵不参加排队。

例如,设有3个士兵,A、B、C,给出关系(A,B),(B,C)。其中(A,B)表示士兵A高于B,当上面的关系给出之后,可以将他们排成一队:ABC。

输入输出格式

输入格式:
输入文件中每个比较结果在文件中占一行。

输出格式:
若输入数据无解或不能唯一确定,则输出“NO ANSWER!”,否则从高到矮依次输出每一个士兵的编号,中间无分隔符,并把结果写入文本文件中。

输入输出样例

输入样例#1A>B                 
B>F
F>D

这道题目看上去十分的困难,感觉毫无头绪,但是有经验的OI选手一眼就可以看出,这是TOP排序啊!(若不知道TOP排序,请见『这里!』)。但是在简单的Top排序上又要加入一些判断,详情见代码:

#include<stdio.h>
#include<stdlib.h>
#include<string
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值