POJ - 1094 Sorting It All Out 拓扑排序

STM32 USB AUDIO实战指南——从零构建音频设备 本文详细介绍了如何使用STM32F407构建USB音频设备,从硬件准备到软件配置,再到音频播放和录制功能的实现。通过STM32CubeMX配置和实战代码示例,帮助开发者快速掌握USB Audio Class规范,实现低延迟、高质量的音频传输,适用于语音交互、音乐播放等多种场景。 阅读详情

题意描述:给定前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;
}
H无穷控制学习笔记——加权灵敏度H无穷控制问题 一、加权灵敏度H无穷问题 系统结构如上图所示。被控对象P的状态空间方程为(Ap,Bp,Cp,DpA_p,B_p,C_p,D_pAp​,Bp​,Cp​,Dp​),加权函数W1的状态空间方程为(A1,B1,C1,D1A_1,B_1,C_1,D_1A1​,B1​,C1​,D1​),加权函数W2的状态空间方程为(A2,B2,C2,D2A_2,B_2,C_2,D_2A2​,B2​,C2​,D2​),加权函数W3的状态空间方程为(A3,B3,C3,D3A_3,B_3,C_3,D_3A3​,B3​,C3​,D3​)。 阅读详情

相关推荐

工作中SVN的使用,保姆级教程!

SVN是一款集中式版本控制系统,采用客户端-服务器模式管理代码版本。与Git相比,SVN在目录权限控制、大型二进制文件处理等方面具有优势,适合特定场景使用。本文介绍了SVN的安装方法、基本操作(检出、提交、更新、回滚等)以及分支管理(创建、合并、切换)。同时讲解了文件冲突的解决方法,并演示了如何在IDEA中集成SVN工具。SVN虽然逐渐被Git取代,但在某些特定场景下仍是可靠选择,工具选择应基于团队和项目需求。

胜人者有力,自胜者强! 1854

POJ 1094 Sorting It All Out 拓扑排序

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

菜鸡的博客 162

从命令到对话:LLM如何重塑车载语音交互与软件定义汽车体验

自动语音识别和自然语言处理是智能交互的核心基础技术,它们使机器能够理解和响应人类语音指令。其原理在于通过声学模型和语言模型将声音信号转化为文本,再解析文本背后的用户意图。这项技术的价值在于提供了一种自然、高效且能解放双手的人机交互方式,极大地提升了在特定场景(如驾驶)下的安全性与便利性。随着技术演进,其应用场景已从简单的命令控制扩展到复杂的多轮对话和跨域任务执行。当前,软件定义汽车的架构变革为车载语音提供了统一的控制平台,而大型语言模型的引入则带来了范式革命,使其从功能触发器进化为真正的智能任务执行者。本文

weixin_42669344的博客 563

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

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

2059

基于咸鱼最新九宫格图标验证码的语义增强模型识别

本文探讨了破解复杂验证码的技术思路,重点分析了某平台的九宫格验证码应对策略。作者提出通过图像语义抽取和增强技术来扩充数据集:先采集少量真实样本,利用形态学操作进行前增强生成变形图像,再通过叠加背景噪声进行后增强。同时强调真实数据集的重要性,建议采用真实+生成数据的混合训练方法。实验表明该方法可使模型准确率达到95%以上,但作者特别声明本文仅供技术研究,严禁用于非法用途。

码王吴彦祖的博客 601

抖音无水印视频爬虫实战:从抓包分析到批量下载指定用户作品

抖音作为当前最受欢迎的短视频平台,拥有海量的优质内容。很多用户希望备份自己或他人的作品,但抖音官方并未提供批量下载功能,且直接下载的视频带有平台水印。本文将带领大家从零开始,通过抓包分析、设备模拟、请求签名等核心技术,实现一个完整的抖音无水印视频爬虫系统。本文仅供技术学习和个人备份使用,请勿将爬取的内容用于商业用途或侵犯他人版权,爬取频率请控制合理范围内。目录一、前言二、技术栈概览三、准备工作3.1 环境搭建3.2 抓包分析步骤3.3 关键API发现四、核心技术解密4.1 X-Gorgon签名算法。

2201_76125261的博客 846

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

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

Deng's site \# 2353

UWB:FiRa Consortium UCI Generic Technical Specification v1.1.0(1)- UCI架构和通用数据包头

如果大家学习过WiFi的SPEC,比如从我的资源里面下载 IEEE 802.11-2007,应该很容易发现,FiRa的spec定义实在是太差了。有现成的好例子不学,非得自己来一套,搞一堆新的名词,其实都是一个意思。比如GID,OID等,而且GID、OID是最先出现的,但是对应表格 还得去附件的最后一项去找。 FiRa是UWB联盟,希望跟WIFi联盟学习一下,把UWB做大做强,而不是自成一派,自命不凡。

Ankie资深技术项目经理 2434

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

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

sanmingzi3344的专栏 797

手把手教你学SOME/IP「3.2.1.发布/订阅行为」

本文详细介绍了SOME/IP协议中的服务发现机制,重点解析了发布/订阅行为的流程。主要内容包括:1)服务发布与Method通信流程,涵盖find/offer报文交互、TTL保活机制及异常处理;2)服务订阅与Event通信流程,包括subscribe/ack报文交互和组播延迟机制;3)特殊场景如快速发送、半周期回复、重置订阅等机制。通过邮局订阅报纸的类比,帮助理解服务发现的核心原理,并强调流程图对于问题定位的重要性。文章为SOME/IP协议的工程实现提供了实用指导。

nihaoljq2010的博客 1222

TC3XX - MCAL知识点(二十七):SENT Mcal配置及代码实战(单边半字节传输协议)

SENT协议只有一根线,异步传输!Sent协议的全称为Single Edge Nibble Trans .isson,单边半字节传输协议,是一种单线异步串行通信协议。Sent报文包含8个Nibble和一个校准位如图1所示,每一个Nibble数据被编码成PWM方式。设计这种协议的目的是用在与汽车ECU快速交互信息的传感器上,以此来取代低精确度的10bit AD和PWM。Sent是一种点对点的单方向从传感器到控制端的协议,控制器不需要同步信号。

梦想技术家 2271

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

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

AFO 373

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

poj 1094 Sorting It All Out 拓扑排序

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

弱智就要多努力 495

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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

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

An55511的博客 131

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

poj1094Sorting It All Out——拓扑排序

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

aodan5477的博客 118

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、付费专栏及课程。

余额充值