蓝书(算法竞赛进阶指南)刷题记录——POJ1094 Sorting It All Out(最短路floyd)

Qt基础之十九:进程与QProcess 进程就是一个程序的执行实例,也就是正在运行的程序。对操作系统来说,进程就是一个担当分配系统资源CPU时间、内存的实体。在Qt 中,我们使用QProcess来表示一个进程。这个类可以允许我们的应用程序启动一个新的外部程序,并且与这个程序进行通讯。当外部程序开始启动时,QProcess的状态为Starting;外部程序已经启动时,QProcess的状态为Running,并发送started()信号;当外部层序退出了,QProcess的状态为NotRunning(初始状态),并发送finished()信号。 阅读详情

题目:POJ1094.
题目大意:给定 26 26 26个字母的 n n n组不等关系,格式为 x &lt; y x&lt;y x<y.现在要求输出最早能够确定唯一顺序或产生矛盾的位置,或输出没有这样一个位置,若有唯一顺序要输出顺序.
注意这道题的输出格式.

这道题一看想到了差分约束,仔细一想用floyd跑差分约束,然后发现好像确实可做.

我们用设 f [ i ] [ j ] f[i][j] f[i][j]为 t r u e true true表示 i &lt; j i&lt;j i<j,那么我们可以将所有关系转化,然后就可以跑一遍Floyd,接下来若有一对 x , y x,y x,y满足 f [ x ] [ y ] = f [ y ] [ x ] = t r u e f[x][y]=f[y][x]=true f[x][y]=f[y][x]=true,就说明矛盾,否则说明不矛盾.

要求出第几对之后矛盾,我们可以二分求解,或者也可以暴力枚举在第几对之后.

若不矛盾,我们要确定唯一顺序的话,我们可以发现若有唯一顺序的话,那么肯定满足一对 x , y x,y x,y不存在 f [ x ] [ y ] = f [ y ] [ x ] = f a l s e f[x][y]=f[y][x]=false f[x][y]=f[y][x]=false的情况.

求出唯一顺序可以使用暴力枚举每一个点,也可以直接使用拓扑排序求解.

至于求解在第几对之后,二分一下就好,当然也可以暴力枚举.

我这道题一开始以为它是要先判断所有边是否有矛盾或有唯一顺序,但是题目是要边读入边判.

代码如下:

//#include<bits/stdc++.h>
#include<iostream>
  using namespace std;
#define Abigail inline void
typedef long long LL;
const int N=26,M=N*N;
struct side{
  int x,y;
}e[M+9];
int n,m;
int flag,ans,pre[N+9];
int f[N+9][N+9];
void floyd(int mid){
  if (mid>m) mid=m;
  for (int i=1;i<=n;i++)
    for (int j=1;j<=n;j++)
      f[i][j]=0;
  for (int i=1;i<=mid;i++)
    f[e[i].x][e[i].y]=1;
  for (int k=1;k<=n;k++)
    for (int i=1;i<=n;i++)
      for (int j=1;j<=n;j++)
        f[i][j]|=f[i][k]&f[k][j];
}
bool check_con(int mid){
  if (mid>m) mid=m;
  floyd(mid);
  for (int i=1;i<=n;i++)
    for (int j=1;j<=n;j++)
      if (i^j&&f[i][j]&f[j][i]) return true;
  return false;
}
bool check_order(int mid){
  if (mid>m) mid=m;
  floyd(mid);
  for (int i=1;i<=n;i++)
    for (int j=1;j<=n;j++)
      if (i^j&&!(f[i][j]^f[j][i])) return false;
  return true;
}
char rc(){
  char c=getchar();
  while (c<'A'||c>'Z') c=getchar();
  return c; 
}
Abigail into(){
  char c1,c2;
  for (int i=1;i<=m;i++){
    c1=rc();c2=rc();
    e[i].x=c1-'A'+1;e[i].y=c2-'A'+1;
  }
}
Abigail work(){
  flag=2;
  for (int i=1;i<=m;i++){
    if (check_con(i)) flag=0;
    if (check_order(i)) flag=1;
    ans=i;
    if (flag^2) break;
  }
}
Abigail outo(){
  switch (flag){
    case 0:printf("Inconsistency found after %d relations.\n",ans);
           break;
    case 1:printf("Sorted sequence determined after %d relations: ",ans);
           floyd(ans);
           for (int i=1;i<=n;i++)
             pre[i]=0;      //查了一个下午错发现自己没有初始化pre为0...
           for (int i=1;i<=n;i++)
             for (int j=1;j<=m;j++)
               if (f[i][j]&&i^j) pre[j]++;
           for (int i=0;i<n;i++)
             for (int j=1;j<=n;j++)
               if (pre[j]==i) putchar(j-1+'A');
           putchar('.');putchar('\n');
           break;
    case 2:printf("Sorted sequence cannot be determined.\n");
           break;
  }
}
int main(){
  while (~scanf("%d%d",&n,&m)&&n){
    into();
    work();
    outo();
  }
  return 0;
}
多传感器标定:如何统一摄像头、雷达与IMU坐标? 多传感器标定:如何统一摄像头、雷达与IMU坐标?​ ,人工智能,计算机视觉,大模型,AI,本文详细阐述多传感器标定中统一摄像头、雷达与 IMU 坐标的方法。先介绍传感器坐标系统、坐标统一必要性及变换数学基础,再分述摄像头与雷达、IMU 与摄像头、IMU 与雷达的标定原理、步骤、参数计算及结果验证,还讲解了多传感器坐标统一的整体流程,分析了标定常见问题及解决办法,介绍了常用标定工具,结合实际案例说明应用,探讨了标定精度的影响因素、提升方法及发展趋势,为相关领域提供了全面的多传感器标定指导。​ 阅读详情

相关推荐

R语言 | 关联规则

关联规则(AssociationRules)是无监督的机器学习方法,用于知识发现,而非预测。 关联规则的学习器(learner)无需事先对训练数据进行打标签,因为无监督学习没有训练这个步骤。缺点是很难对关联规则学习器进行模型评估,一般都可以通过肉眼观测结果是否合理。 关联规则主要用来发现Pattern,最经典的应用是购物篮分析,当然其他类似于购物篮交易数据的案例也可以应用关联规则进行模式发现。

I think so I am 10万+

POJ1094 Sorting It All Out(拓扑排序 or Floyd)

题意:对于N个大写字母,给定它们的一些偏序关系,要求判断出经过多少个偏序关系之后可以确定它们的排序或者存在冲突,或者所有的偏序关系用上之后依旧无法确定唯一的排序。 分析:拓扑排序模板题,发现也可以用最短路Floyd算法解决,详见《算法竞赛进阶指南》P360。 代码: #include <cstdio> #include <cstring> #include <...

常胜将军的博客 347

强化学习 reward 曲线可视化:从基础绘制到顶刊级对比分析

本文详细介绍了强化学习reward曲线的可视化方法,从基础绘制到顶刊级对比分析。通过matplotlib和seaborn的实战示例,展示了如何优化曲线图的视觉效果,包括多实验对比、置信区间添加和分面图应用。文章还分享了顶刊级图表的进阶技巧,如字体排版、颜色选择和关键标注,帮助研究者提升论文图表质量。

weixin_29096377的博客 270

poj 1094 Sorting It All Out(Floyd求传递闭包)

升序序列为A<B<C<D... 输入n,m表示有n个大写字母,m表示有m对关系A<B 输出,最少能有前几个关系确定升序序列,输出序列 否则判断是否矛盾,或者无法确定序列

越看越喜欢啊 438

Linux CentOS7文件系统(/dev/var)的容量扩充

原因是之前安装docker后,再想安装Nessus,系统说home、var文件系统的内存都不够。

JHoanna的博客 3226

即梦AI使用教程

摘要: 即梦AI是字节跳动推出的多模态AI创作平台,整合图片、视频、智能编辑功能,基于OmniHuman模型支持中英日三语操作。核心特点包括: 技术升级:4.0版本强化中文语义理解与微观表现力,新增故事分镜生成; 创作功能:支持文本/图片转视频、AI对口型、商业级抠图与多图层融合; 用户友好:移动/网页双端适配,灵感社区复用提示词,剪映生态无缝衔接; 应用场景:覆盖电商换装、虚拟主播、设计融合等需求,未来将开放API拓展生态。 (字数:149)

专业深耕,技术前沿 6302

POJ 1094 Sorting It All Out (进阶指南,Floyd)

算法竞赛进阶指南,360页, Floyd算法 传递闭包 题目意思: 给出n个不等式,比较若干个大写字母的大小关系。然后确定这n个等式会得出以下3个结果: 1) n个字母的大小关系唯一确定, 此时输出第几条不等式就能得出全部大小和 这些大写字母从小到大的排列顺序的字符串; 2) 大小关系出现矛盾, 输出第几条不等式,就得出矛盾了; 3) 大小关系不能确定; 本题要点: 0、 如果 i < j, 用 d[i][j] == 1 表示;i > j 和 i 和 j的关系不确定,用 d[i][j] ==

qq_38232157的博客 182

【安全机制分析案例】从PDF预览页面提取原始PDF文件的方法原理与实践 篇二:基于致远互联(Seeyon)封装的SuwellLightRead技术

该HTML代码片段展示了致远OA协同办公系统的前端页面结构,包含多个CSS样式表和JavaScript文件的引用。页面设置了IE兼容模式,加载了全局环境变量、UI组件库和公告模块相关资源。代码中定义了系统路径、静态资源后缀等全局变量,并包含公告查看功能的相关配置参数。页面还引用了水印、文档处理、即时通讯等功能的JS文件,并设置了文件下载框架。整体呈现了一个典型的OA系统前端实现方案,包含浏览器兼容处理、资源加载和功能模块初始化等逻辑。

生活在别处 2073

POJ1094

/**/ #include <algorithm> #include <iostream> #include <cstring> #include <cstdio> #include <string> #include <vector> #include <cctype> #include <queue&gt...

CLIII的博客 383

webrtc进阶-- FlexFEC 实现原理与调试分析(m80 代码对齐版)

WebRTC 中 FlexFEC 技术解析与调试指南 摘要:本文深入分析 WebRTC 的 FlexFEC(灵活前向纠错)技术实现原理,重点探讨其在 m80 版本中的协商机制、接收侧恢复流程以及 SFU 场景下的特殊处理。文章指出 FlexFEC 通过动态冗余策略提升弱网抗丢包能力,详细解析了编解码器分配、SSRC 映射、包恢复等关键环节,并提供了针对 XR+SFU 场景的调试建议。调试时可重点关注 FEC 包接收与媒体包恢复日志,以验证链路有效性。

HOSTEN的博客 48

构建AI招聘助手:提高人才筛选与匹配效率

人工成本高:传统招聘过程涉及大量的简历筛选和面试安排,需要耗费大量的人力和时间。匹配效率低:简历筛选过程中,人为因素可能导致信息遗漏或误判,影响匹配效果。招聘周期长:从职位发布到最终录用,传统招聘流程往往耗时较长,影响企业业务发展。机器学习(Machine Learning)是一门让计算机通过数据和经验来学习并改进性能的学科。自然语言处理(Natural Language Processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向,旨在让计算机能够理解和解释人类语言。

AI天才研究院 1303

POJ1094 Sorting It All Out —— 拓扑排序

题目链接:http://poj.org/problem?id=1094 Sorting It All Out Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 35468   Accepted: 12458 Description An asce

A man can be destroyed, but not defeated. 739

【DEIM创新改进】全网首发、独家特征融合创新改进篇 | CVPR2025 | 引入RLAB残差线性注意力特征融合块,有效融合并强调多尺度特征,有效减少信息丢失,助力DEIM目标检测有效涨点

本文提出了一种改进DEIM网络模型的新方法RLAB(残差线性注意力特征融合模块),用于医学图像生物标志物分割。RLAB模块通过多尺度残差精炼和注意力机制,有效整合编码器跳跃连接与解码器特征图,提升特征对齐和关键区域关注能力。实验表明,该方法在MoNuSeg、DSB等四个医学图像数据集上显著优于现有方法,最高提升4.03%的绝对性能。文章详细介绍了RLAB的网络结构、核心代码实现方式,并提供了将模块集成到DEIM模型的具体步骤。

Ai缝合怪、助力小伙伴高效发论文 349

POJ 1094:Sorting It All Out拓扑排序之我在这里挖了一个大大的坑

Sorting It All Out Time Limit:1000MS Memory Limit:10000K Total Submissions:29984 Accepted:10373 Description An ascending sorted sequence of distinct val...

weixin_33810006的博客 132

lwip-2.0.3

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

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

POJ 1094 Sorting It All Out【floyd传递闭包+拓扑排序】

Sorting It All Out Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 31994   Accepted: 11117 Description An ascending sorted sequence of dist

mengxiang000000 1531

NTscan扫描工具

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

poj 1094 Sorting It All Out(nyoj 349)

点击打开链接 Sorting It All Out Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 24544   Accepted: 8503 Description An ascending sorted sequence of distinct

云淡风清 815

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

蓝书(算法竞赛进阶指南)刷题记录——【SDOI2013】BZOJ3124 直径题解(树的直径)

题目:BZOJ3124. 题目大意:给定一棵nnn个点的树,求这棵树的直径以及所有树直径都经过的边的数量. 1≤n≤2∗1051\leq n\leq 2*10^51≤n≤2∗105. 首先第一问很好解决. 对于第二问,一棵树上所有直径必然有至少一个交点,并且所有直径的交必然是一条路径,考虑利用这个性质求解. 首先跑出一条路径具体的路径,考虑在这条路径上跑出一个区间作为答案. 考虑一个性质,设直径的...

hzk_cpp的博客 596

poj1094 Sorting It All Out(传递闭包)

题目 poj1094 Sorting It All Out 题解 Floyd解决 传递闭包 若有A&lt;B,那么连边(A,B,1),即d[A][B]=1。 如果有A&lt;B,且B&lt;C,对应有d[A][B]=1,d[B][C]=1,在Floyd算法中,会使 d[A][C] |= d[A][B] &amp; d[B][C] ,所以d[A][C]=1。这就是传递闭包。 实现时,可以边输入...

A_Bright_CH的博客 423

BZOJ1576 安全路径题解(最短路+并查集)

题目:BZOJ1576. 题目大意:给定一张nnn个点mmm条边的无向图,询问对于111到nnn的每个点iii,最短的一条从111到iii的路径,使得这条路径的最后一条边与111到iii的最短路的最后一条边不同.保证对于任意iii,111到iii的最短路径是唯一的. 数据范围:1≤n≤105,1≤m≤2∗1051\leq n\leq 10^5,1\leq m\leq 2*10^51≤n≤105,1...

hzk_cpp的博客 493

POJ题解Sorting It All Out-传递丢包+倍增

题目链接: http://poj.org/problem?id=1094 题目大意(直接从谷歌翻译上复制下来的): 描述 不同值的递增排序顺序是其中使用某种形式的小于运算符来将元素从最小到最大排序的顺序。例如,排序后的序列A,B,C,D意味着A <B,B <C和C <D.在这个问题中,我们将给出一组形式A <B的关系并要求你确定是否已排序的订单已被指定。 输入 输入由多...

weixin_30306905的博客 157

poj1094

使用删边法进行了拓扑排序,而DFS 法则可以

菜鸟只能慢慢练 494

POJ 1094 Sorting It All Out 拓扑排序+Floyd算法

Sorting It All Out Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 24697   Accepted: 8557 Description An ascending sorted sequence of distinct values is one in

Puyuacm的专栏 814

蓝书(算法竞赛进阶指南)刷题记录——POJ1961 Period(KMP算法)

题目:POJ1961. 题目大意:给定一个长度为nnn的字符串S[1..n]S[1..n]S[1..n],求出对于每一个前缀S[1..i]S[1..i]S[1..i]满足最大循环次数大于111,该前缀的长度与最大循环次数. 注:一个串S[1..n]S[1..n]S[1..n]的一个iii最小的前缀S[1..i]S[1..i]S[1..i]满足S[1..i]S[1..i]S[1..i]重复k(k∈N...

hzk_cpp的博客 444

【题解】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 s...

翻过这座山,他们就会听到你的故事 422

周期(KMP算法之Next数组的性质)

题目描述 一个字符串的前缀是从第一个字符开始的连续若干个字符,例如”abaab”共有5个前缀,分别是a, ab, aba, abaa, abaab。 我们希望知道一个N位字符串S的前缀是否具有循环节。 换言之,对于每一个从头开始的长度为 i (i>1)的前缀,是否由重复出现的子串A组成,即 AAA…A (A重复出现K次,K>1)。 如果存在,请找出最短的循环节对应的K值(也就是这个前缀...

逐梦er的博客 2063

Sorting It All Out POJ - 1094

1.floyd 求传递闭包 #include<cstdio> #include<algorithm> #include<iostream> #include<cstring> using namespace std; int d[30][30]; int g[30][30]; int n,m; int st[30]; int check() { f...

weixin_45113721的博客 170
上一篇: 蓝书(算法竞赛进阶指南)刷题记录——BZOJ2200 道路与航线(堆优化dijkstra+拓扑排序+DP)
下一篇: 蓝书(算法竞赛进阶指南)刷题记录——POJ3468 A Simple Problem with Intergers(树状数组维护差分)
hezlik
博客等级 码龄9年 111粉丝 241原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值