当前位置: 首页 > news >正文

网站的ftp信息推广公司哪里找

网站的ftp信息,推广公司哪里找,seo网站排名优化价格,上海网站建设选缘魁-企查题意 一个不同的值的升序排序数列指的是一个从左到右元素依次增大的序列&#xff0c;例如&#xff0c;一个有序的数列 A,B,C,DA,B,C,DA,B,C,D 表示 A<B,B<C,C<DA<B,B<C,C<DA<B,B<C,C<D。在这道题中&#xff0c;我们将给你一系列形如 A<BA<BA…

题意

一个不同的值的升序排序数列指的是一个从左到右元素依次增大的序列,例如,一个有序的数列 A,B,C,DA,B,C,DA,B,C,D 表示 A<B,B<C,C<DA<B,B<C,C<DA<B,B<C,C<D。在这道题中,我们将给你一系列形如 A<BA<BA<B 的关系,并要求你判断是否能够根据这些关系确定这个数列的顺序。

输入格式

第一行有两个正整数 n,mn,mn,mnnn 表示需要排序的元素数量,2≤n≤262\leq n\leq 262n26,第 111nnn 个元素将用大写的 A,B,C,D,…A,B,C,D,\dotsA,B,C,D, 表示。mmm 表示将给出的形如 A<BA<BA<B 的关系的数量。

接下来有 mmm 行,每行有 333 个字符,分别为一个大写字母,一个 < 符号,一个大写字母,表示两个元素之间的关系。

输出格式

若根据前 xxx 个关系即可确定这 nnn 个元素的顺序 yyy..y(如 ABC),输出

Sorted sequence determined after x relations: yyy...y.

其中 xxx 表示上述的前 xxx 个关系,注意 relations: 与输出的顺序中有一个空格

若根据前 xxx 个关系即发现存在矛盾(如 A<B,B<C,C<AA<B,B<C,C<AA<B,B<C,C<A),输出

Inconsistency found after x relations.

其中 xxx 表示的意义同上。

若根据这 mmm 个关系无法确定这 nnn 个元素的顺序,输出

Sorted sequence cannot be determined.

(提示:确定 nnn 个元素的顺序后即可结束程序,可以不用考虑确定顺序之后出现矛盾的情况)

说明/提示

2≤n≤26,1≤m≤6002 \leq n \leq 26,1 \leq m \leq 6002n26,1m600

思路

oi wiki 的拓扑排序介绍,建议先浏览。

本文是每加入一条边后进行一次拓扑排序,然后判断出现环、有多个入度为0的点还是能拍出顺序。

小细节:

  • 要先判断环再判断有多个入度为0的点,也就是你拓扑排序中不能一遇到有2个入度为0的点就停止排序进行下一条边的读入。

  • 环的判断要求是比较已经排好顺序的点和目前出现的所有点比较,而非同一共的点数 nnn 比较。

  • 本题需要拓扑排序多次,排序需要的入度数组建议另行复制一个,以免影响原数组。

代码

#include<bits/stdc++.h>
using namespace std;
int n,m;
int head[30],nex[1005],to[1005],cnt = 0,now_P;
int in[30];//点入度
bool vis[35];
void add(int x,int y) {nex[++cnt] = head[x];head[x] = cnt;to[cnt] = y;in[y]++;if(!vis[x]) now_P ++;if(!vis[y]) now_P++;vis[x] = 1,vis[y] = 1;
}
int sx[30],tpin[30];//顺序 int tp() {int t = 0;bool k = 0;//判断是否出现有两个入度为0的情况queue<int>point;for(int i = 0;i <= 25;i++) {tpin[i] = in[i];//复制入度if(tpin[i] == 0 and vis[i]) point.push(i);}while(!point.empty()) {int P = point.front();point.pop();if(!point.empty()) k = 1;sx[++t] = P;for(int i = head[P];i;i = nex[i]) {tpin[to[i]]--;if(tpin[to[i]] == 0) point.push(to[i]);}//printf("______%lld %lld\n",P,t);}if(t < now_P) return 0;//出现环if(k) return 2;return 1;
}
signed main() {scanf("%d %d",&n,&m);for(int i = 1;i <= m;i++) {char p,r,q;cin >> p >> r >> q;add(int(q - 'A'),int(p - 'A'));int result = tp();if(result == 0) {printf("Inconsistency found after %d relations.\n",i);return 0;}else if(result == 1 and now_P == n) {printf("Sorted sequence determined after %d relations: ",i);for(int j = n;j >= 1;j--) cout<<char(sx[j] + 'A');cout<<'.';return 0;}}printf("Sorted sequence cannot be determined.\n");return 0;
}
http://www.dtcms.com/a/435094.html

相关文章:

  • 【精品资料鉴赏】384页WORD版小学智慧校园项目建设初步设计方案
  • 手机移动网站建设怎么把网站放到服务器
  • 《牛刀小试!C++ string类核心接口实战编程题集》
  • 做视频网站资源采集软件app定制开发
  • 【原创】SpringBoot3+Vue3商品信息管理系统
  • 3 阐述网站建设的步骤过程哪种网站开发简单
  • Spring Boot 热部署配置与自定义排除项
  • B007基于博途西门子1200PLC四节传送带控制系统仿真
  • C++11新特性解析与应用(1)
  • 【LangChain】P7 对话记忆完全指南:从原理到实战(下)
  • 上海建设房屋网站下载好了网站模板怎么开始做网站
  • 远程智能康养实训室:训练学生驾驭物联网,服务未来居家康养新时代
  • ⚡ WSL2 搭建 s5p6818 Linux 嵌入式开发平台(part 1):环境准备与架构设计
  • 学科建设网站wordpress 主体安装
  • 如何免费建立自己的网站中国建设摩托车
  • 主机服务器网站 怎么做孝义网站建设
  • 快速搭建企业网站阿里虚拟机建设网站
  • 山西建设机械网站首页备案添加网站
  • 店面建设网站的必要性58同城装修设计师
  • C语言笔记
  • 23ICPC合肥站补题
  • LR算法中反向最右推导(Reverse RightMost Derivation)
  • 企业网站托管服务常用指南wordpress ssl证书
  • 专注于响应式网站开发高端定制网站建设高端旅游定制
  • django网站开发教程杭州最便宜的网站建设
  • rpm包的安装方法
  • 内网环境下离线安装软件的完美解决方案(以MySQL为例)
  • 构造函数和初始化列表的关系
  • 济南网站优化建设局网站打不开
  • LabVIEW 系统稳定性计算