POJ - 1094 Sorting It All Out 拓扑排序

西电计组实验一 存储器实验 计组实验报告 实验一 存储器实验——FPGA中LPM_ROM定制与读出实验 一.实验目的   1.掌握FPGA中lpm_ROM的设置,作为只读存储器ROM的工作特性和配置方法;   2.用文本编辑器编辑mif文件配置ROM,学习将程序代码以mif格式文件加载于lpm_ROM中;   3.在初始化存储器编辑窗口编辑mif文件配置ROM;   4.验证FPGA中mega_lpm_ROM的功能。 二.实验原理   ALTERA的FPGA中有许多可调用的LPM (Library Parameterized Modu 阅读详情

题意描述:给定前n个字母的关系描述,根据输入的m组描述(类似A<B),判断能否唯一确定前n个字母的顺序,或者看能否出现矛盾,并且要求输出得出结论时共需用到前面多少组数据,或者最终不能确定顺序。

分析:每次添加一组关系就进行一次拓扑排序,看能否判断关系,或者得出矛盾;如果是不确定的关系就继续添加直到数据用完,或者得出结论。关于判定关系是不是唯一确定的只需要看拓扑排序过程中,每次去掉一个入度为0的点之后剩下的入度为0的点是否唯一,如果不是的话最终得出来的关系就是不唯一的。

代码:

#include <iostream>
#include <sstream>
#include <cstdio>
#include <climits>
#include <cstring>
#include <cstdlib>
#include <string>
#include <map>
#include <cmath>
#include <vector>
#include <queue>
#include <algorithm>
#define esp 1e-6
#define pb push_back
#define mp(a, b) make_pair((a), (b))
#define in  freopen("in.txt", "r", stdin);
#define out freopen("out.txt", "w", stdout);
#define print(a) printf("%d\n",(a));
#define bug puts("********))))))");
#define stop  system("pause");
#define Rep(i, c) for(__typeof(c.end()) i = c.begin(); i != c.end(); i++)
#define inf 0x0f0f0f0f
using namespace std;
typedef long long  LL;
typedef vector<int> VI;
typedef pair<int, int> pii;
typedef vector<pii,int> VII;
typedef vector<int>:: iterator IT;
const int maxn = 30;
VI g[maxn];
int du[maxn], L[maxn], vis[maxn];
int n, m, ok;
bool check(void)
{
    int ct = 0;
    for(int i = 0; i < n; i++)
        if(!du[i] && !vis[i])
        {
            ct++;
            if(ct > 1) return false;
        }
    return true;
}
bool toposort(void)
{
    memset(du, 0, sizeof(du));
    for(int i = 0; i < n; i++)
        for(int j = 0; j < g[i].size(); j++)
            du[g[i][j]]++;
    ok = check();
    queue<int> q;
    for(int i = 0; i < n; i++)
        if(!du[i]) q.push(i);
    int tot = 0;
    while(!q.empty())
    {
        int x = q.front();
        L[tot++] = x;
        vis[x] = 1;
        q.pop();
        for(int j = 0; j < g[x].size(); j++)
        {
            int t = g[x][j];
            du[t]--;
            if(!du[t]) q.push(t);
        }
        if(ok) ok = check();
    }
    return tot == n;
}
int main(void)
{
    while(scanf("%d%d", &n, &m), n||m)
    {
        int flag = 0;
        int k;
        char s[10];
        for(int i = 0; i < maxn; i++) g[i].clear();
        for(k = 1; k <= m; k++)
        {
            ok = 1;
            scanf("%s", s);
            int u, v;
            u = s[0] - 'A';
            v = s[2] - 'A';
            g[u].pb(v);
            memset(vis, 0, sizeof(vis));
            if(!toposort())
            {
                flag = 1;
                printf("Inconsistency found after %d relations.\n", k);
                break;
            }
            else if(ok)
            {
                flag = 1;
                printf("Sorted sequence determined after %d relations: ", k);
                for(int i = 0; i < n; i++)
                    putchar(L[i] + 'A');
                puts(".");
                break;
            }
        }
        for(int i = k+1; i <= m; i++)
            scanf("%s", s);
        if(!flag && k > m)
            puts("Sorted sequence cannot be determined.");
    }
    return 0;
}
【新手流程】1小时解决Anaconda+Cuda+Cudnn+Pytorch+Pycharm深度学习环境配置 一小时速通Anaconda+Cuda+Cudnn+Pytorch+Pycharm环境配置 阅读详情

相关推荐

Unity 2022.3.3 LTS + Visual Studio 2022:手把手教你复刻《吸血鬼幸存者》核心战斗(附完整项目源码)

本文详细介绍了如何使用Unity 2022.3.3 LTS和Visual Studio 2022从零构建《吸血鬼幸存者》式战斗系统。通过图文开发教程,涵盖对象池优化、ECS架构雏形、2D物理碰撞控制等关键技术,帮助开发者高效复刻这款热门游戏的自动攻击与海量刷怪机制。

weixin_30721077的博客 458

POJ 1094 Sorting It All Out 拓扑排序

POJ 1094 Sorting It All Out 大意:给定A<B B<C形式关系若干,问能否构成严格的从小到大的排序 有许多坑点,首先,输出有三种形式: 在第x组序列给出时可以构成严格的排序abcd… 在第x组序列给出时出现矛盾 不能确定排序的序列 前两者的优先级高于第三者 我们每输入一组关系,都进行一次拓扑排序,判断关系是能严格排序,出现矛盾,还是不确定,一旦这组关系是严...

菜鸡的博客 162

【分享】ArcGIS实现分子分母等标注实用技巧

前言 标注是显示在地图上的文字信息,是出图中不可或缺的重要元素,为了标注的样式丰富,摆放的位置灵活,因此给制图出图带来不少难度,以下分享几种本人在ArcGIS中的标注方法,实现上下标注、换行标注或分式标注的实用技巧。 普通模式与高级模式 默认为普通模式,勾选高级开启高级模式。 普通二分式标注(普通模式) [DLBM] & vbnewline & [DLMC] 标注效果展示 分行二分式标注(普通模式) [DLBM]& vbnewline & "——————" &

杨港 3万+

poj 1094 Sorting It All Out(拓扑排序)

http://poj.org/problem?id=1094 拓扑排序,有点坑。。 给出m个关系,在输入的同时判断在当前条件下是否有环,是否能形成唯一拓扑序列,或者是不确定。 此题要注意优先级,当在输入的过程中出现环或拓扑排序成功时可以直接输出,但当前驱结点不唯一时不能直接输出,因为后面的输入可能导致出现环,这时候就应该输出矛盾而不是拓扑序列不唯一了,所以判拓扑序列不唯一时应放在输入完毕

2059

ardupilot SBUS输入捕获

本节主要记录ardupilot 的sbus 输入捕获功能。ardupilot 默认支持多种无线协议控制输入设备,比如常用的PPM,SBUS,IBUS,DSM,SUMD,SRXL等协议,本节主要讲解ardupilot 如何通过定时器的pwm输入捕获来获取sbus数据。

陌城烟雨 270

【从零开始入门unity游戏开发之——C#篇37】进程、线程、C# 中实现多线程有多种方案和async/await异步编程

进程、线程、C# 中实现多线程有多种方案和async/await异步编程

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1469

POJ 1094 Sorting It All Out(拓扑排序·判断+实现)

题意  由一些不同元素组成的升序序列是可以用若干个小于号将所有的元素按从小到大的顺序 排列起来的序列。例如,排序后的序列为 A, B, C, D,这意味着 A 每来一个小于关系就进行一次拓扑排序  直到出现冲突(也就是出现了环)或者已经能确定顺序  当结果已经确定时  后面的小于关系也就没有必要处理了  因此可以用一个flag标记结果是否已经确定 #include #include #i

Deng's site \# 2353

电源芯片MPQ3431A

MPQ3431A是一款具有宽输入范围的固定频率为450kHz的高度集成的升压转换器,其输入电压低至2.7V,采用恒定关断时间(COT)的控制拓扑,可提供快速的瞬态响应。芯片支持通过MODE管脚配置PSM(pulse-skip mode)、FCCM(forced continuous conduction mode)和USM(ultrasonic mode);还支持通过电流限制配置来达到精确的过流保护;同时芯片欠压保护(UVLO)和过温保护(OTP)。MPQ3431A采用QFN-13(3mmx4mm)封装。保

qflook的博客 1559

Poj 1094 Sorting It All Out——拓扑排序

题目链接: http://poj.org/problem?id=1094 题目大意: 这个题目的难点就在于题目意思的理解。 有n个大写字母,并且告诉这n个大写字母的大小关系,要你对这n个大写字母进行排序。 解题思路: 但是,这个题目并不是等所有的输入结束之后判断,而是一边输入一边进行判断。 每次输入一组字母的关系之后,我们就需要更新原来的图。 如果原来的

sanmingzi3344的专栏 797

Python爬虫教程:爬取法院司法拍卖数据全流程实战(附反爬+数据分析方案)

Python爬虫爬取法院司法拍卖数据的核心是模拟真人行为规避反爬+精准解析页面数据+合理处理数据。新手不用一开始就追求高级的反爬技巧和复杂的数据分析,先把基础的分页爬取和数据保存功能跑通,再逐步优化。我做的这个工具现在每周帮朋友爬取全国10个城市的法拍房数据,自动生成分析报告,他说这让他的投资决策效率提升了一倍。如果你们在开发过程中遇到问题,比如反爬失败、数据解析错误,都可以在评论区留言,我会尽力解答。后续我还会出一期爬取京东司法拍卖数据的教程,帮助大家获取更多的法拍数据来源。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2179

一分钟了解OpenSpec (规格)

OpenSpec是由Fission AI开源的轻量级规范驱动开发(SDD, Spec-Driven Development)CLI工具。它专为AI编程助手(如Cursor、Claude Code)设计,核心是**“先约定,后编码”:在AI写代码前,先通过结构化规范文档达成共识,让开发过程可预测、可审计、可协作**。轻量无侵入:单CLI、无依赖、不改造项目、1分钟接入存量友好:增量Spec、不重构旧文档、1→n王者完全可控:每步审查、AI按图施工、零返工协作利器。

h a 6 6 6 c k 为 你解决复杂难题! 2753

【POJ 1094】 Sorting It All Out (拓扑排序)

本以为是拓扑与强连通分量的伟大结合。。。

AFO 373

搭建ROS小车真的难吗?

搭建ROS小车真的难吗?不难 1.引言 本着为大家谋福利的心态,根据自己以往的开发经验,打算写一个从零开始制作一个可以实现地图构建和导航的ROS小车。目前某宝上面有很多现成产品,但是我个人认为,一个好的移动机器人开发工程师,应该对机器人的整个流程都能具备维护的能力,然后再深入研究其中一个方向即可。看到网上很少有整个系列的开发教程,看到同学们大多东拼西凑,浪费了不少时间。我就想着利用空余时间,将我本人的开发过程输出给大家。有基础理论、有实际工程代码、有丰富的学习资料,尽最大努力帮大家进入移动机器人的大门。 国

「小白学移动机器人」一个专注分享移动机器人相关知识的公众号! 1万+

poj 1094 Sorting It All Out 拓扑排序

题目:http://poj.org/problem?id=1094 题意:给定n个字母,和m个它们之间的偏序关系,判断是否可以排成一个全序序列,在第几条关系后能得出全序序列,或者得出有矛盾。否则最后输出无法判断 思路:拓扑排序,如果有环肯定无法排成全序序列。进行拓扑排序时,每次只能有一个点入度为0,否则无法判断。 #include #include #include #include

弱智就要多努力 495

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

POJ 1094 Sorting It All Out【拓扑排序】

题目链接: http://poj.org/problem?id=1094 题意: 给定前n个字母的大小关系,问你是否 根据前xxx个关系得到上升序列 所有关系都无法确定唯一的一个序列 第xxx个关系导致出现环 分析: 此题坑略多。。。。 m大小没给!!这个很无语啊。。。数组开大点马上AC了。。。 无法确定序列必须最后判断。 一旦可以判断出上升序...

An55511的博客 131

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

poj1094Sorting It All Out——拓扑排序

题目:http://poj.org/problem?id=1094 看到此题,首先觉得这是一种层层递进的关系,所以可以想到用拓扑排序; 就像人工排序,每次需要找到一个最小的,再找到新的最小的……所以用有向边代表小的元素到大的元素的关系,每次的入度为0的点就是最小的; 出现错误也就是出现了环,可以看做是拓扑排序过程后还有没有被排到的点,也就是怎样入度都不为0; 因为要输出哪一步,所...

aodan5477的博客 118

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

ACM: poj 1094 Sorting It All Out - 拓扑排序

poj 1094Sorting It All Out Time Limit:1000MSMemory Limit:10000KB64bit IO Format:%lld & %llu Description An ascending sorted sequence of distinct values is one in which ...

weixin_30390075的博客 125

POJ-1094 Sorting It All Out(拓扑排序)

POJ-1094 Sorting It All Out(拓扑排序)Sorting It All OutTime Limit: 1000MS Memory Limit: 10000K   DescriptionAn ascending sorted sequence of distinct values is one in which some form of a less-than operato...

碳酸钙的01妖精的博客 162

POJ 1094-Sorting It All Out 拓扑排序

<br />题目来源:http://acm.pku.edu.cn/JudgeOnline/problem?id=1094<br /> <br />解题报告:<br /> <br />每添加一条边,就检查一次是否可以对排序顺序进行确定。<br /> <br />每一次检查时,对已形成的图进行深搜,如果在深搜时遇到了灰色结点,就说明图中存在反边,即Inconsistency found;深搜的同时将结点按照访问结束的顺序放入队列Q1中,最后获得的Q1就是拓扑排序的结果,设为ABCD...,如果对队列中的连续的亮

kindlucy的专栏 743

POJ - 1094 Sorting It All Out 【拓扑排序】

题目链接 http://poj.org/problem?id=1094 题意 给出n个点,m对关系 判断 是否能够有一个确定的排列,或者矛盾,或者没有确定的排列 思路 在代码下面的注释中 AC代码 #include <cstdio> #include <cstring> #include <ctype.h&...

banshen0201的博客 88

poj 1094 Sorting It All Out (拓扑排序)

http://poj.org/problem?id=1094 Sorting It All Out Time Limit:1000MS Memory Limit:10000K Total Submissions:24505 Accepted:8487 Description An ascending sorted ...

diansitao5461的博客 119

poj1094 Sorting It All Out(拓扑排序)

题意:给你m个类似于 A < B 的条件,让你判断可不可以确定一个大小关系。 分为以下三种。 Sorted sequence determined after xxx relations: yyy...y. Sorted sequence cannot be determined. Inconsistency found after xxx relations. 1是完全确定大小关系,...

一身清贫怎敢入繁华 354

[POJ 1094]Sorting It All Out[拓扑排序]

Sorting It All OutTime

HIT_Zero的博客 413

【原】 POJ 1094 Sorting It All Out 拓扑排序 解题报告

http://poj.org/problem?id=1094 方法: 每加入一条边就进行一次拓扑排序,从而找到符合条件的最少边数 拓扑排序的基本思想就是依次找到图中入度为0的节点,将该节点和其对应的边删除,这样就使得它的邻接节点的入度-1。反复循环这样做直到所有节点都从图中删除(都被编上拓扑编号),或者因为有环所以还剩下某些节点未被删除 Descrip...

ajiaxi111111的博客 203

POJ1094 Sorting It All Out【拓扑排序】

Description An ascending sorted sequence of distinct values is one in which some form of a less-than operator is used to order the elements from smallest to largest. For example, the sorted sequence A, B, C, D implies that A < B, B < C and C < D.

胡小涛的博客 232

POJ1094 Sorting It All Out 拓扑排序

思路借鉴:https://www.cnblogs.com/yueshuqiao/archive/2011/08/16/2140485.html 题意:A~Z中n个字母,给你m对先后关系,让你判断它们的顺序情况。 思路:有以下三种情况: 1、有环,说明给定次序矛盾。 2、能确定唯一次序。 3、无法确定唯一次序。 其中1、2可以不用完m对先后关系,而3必须用完m对先后关系才能确定。 因为m对关系是逐一...

枚举星星 221
上一篇: UVALive - 4255 Guess
下一篇: UVALive - 5135 Mining Your Own Business
rootial
博客等级 码龄15年 2粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值