HDU 1811 Rank of Tetris(topsort)

apache 403错误 Forbidden解决方法 当网页打开提示以下错误时,即出现了403错误。 Forbidden You don't have permission to access / on this server. 403 Forbidden 资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。通常情况可能(但不限于此)的原因有: 原因1:apache配置文件中没有对站点目录的权限许可,这通... 阅读详情

Problem Description
自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。

为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名堂要比福布斯富豪榜还响。关于如何排名,这个不用说都知道是根据Rating从高到低来排,如果两个人具有相同的Rating,那就按这几个人的RP从高到低来排。

终于,Lele要开始行动了,对N个人进行排名。为了方便起见,每个人都已经被编号,分别从0到N-1,并且编号越大,RP就越高。
同时Lele从狗仔队里取得一些(M个)关于Rating的信息。这些信息可能有三种情况,分别是"A > B","A = B","A < B",分别表示A的Rating高于B,等于B,小于B。

现在Lele并不是让你来帮他制作这个高手榜,他只是想知道,根据这些信息是否能够确定出这个高手榜,是的话就输出"OK"。否则就请你判断出错的原因,到底是因为信息不完全(输出"UNCERTAIN"),还是因为这些信息中包含冲突(输出"CONFLICT")。
注意,如果信息中同时包含冲突且信息不完全,就输出"CONFLICT"。
 

Input
本题目包含多组测试,请处理到文件结束。
每组测试第一行包含两个整数N,M(0<=N<=10000,0<=M<=20000),分别表示要排名的人数以及得到的关系数。
接下来有M行,分别表示这些关系
 

Output
对于每组测试,在一行里按题目要求输出
 

Sample Input
  
3 3 0 > 1 1 < 2 0 > 2 4 4 1 = 2 1 > 3 2 > 0 0 > 1 3 3 1 > 0 1 > 2 2 < 1
 

Sample Output
  
OK CONFLICT UNCERTAIN
 

Author
linle
 

Source
 

Recommend



关键是用并查集缩点,就是把a=b,然后把a和b看做一个点


代码:



#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
#include<queue>
#include<stack>
#include<vector>
using namespace std;

#define N 10005

int father[N],n,m,d[N],num;
vector<int>g[N];
int le[N],ri[N];
char c[N];

int cha(int x)
{
	if(x!=father[x])
		father[x]=cha(father[x]);
	return father[x];
}

void topsort()
{
	int i,j;
	queue<int>q;
	for(i=0;i<n;i++)
		if(father[i]==i&&d[i]==0)
		q.push(i);

	int uncertain=0,conflict=0;

	while(!q.empty())
	{
		num--;
        if(q.size()>1) uncertain=1;
		int x=q.front();
		q.pop();
		for(i=0;i<g[x].size();i++)
			if(--d[g[x][i]]==0)
			q.push(g[x][i]);
	}
    if(num)
		printf("CONFLICT\n");
	else
		if(uncertain)
		printf("UNCERTAIN\n");
	else
		printf("OK\n");
}

int main()
{
	int i,j;
	while(~scanf("%d%d",&n,&m))
	{

        num=n;
  		for(i=0;i<=n;i++)
		{
			father[i]=i;
			g[i].clear();
                        d[i]=0;
		}
		for(i=0;i<m;i++)
		{
			scanf("%d %c %d",&le[i],&c[i],&ri[i]);
			if(c[i]=='=')
			{
				int xx=cha(le[i]);
				int yy=cha(ri[i]);
				if(xx!=yy)
				{
					father[xx]=yy;
					num--;
				}
			}
		}

        for(i=0;i<m;i++)
			if(c[i]=='<')
		{
                  int xx=cha(le[i]);
                  int yy=cha(ri[i]);
			g[yy].push_back(xx);
			d[xx]++;
		}
		else
			if(c[i]=='>')
		{   int xx=cha(le[i]);
                    int yy=cha(ri[i]);
			g[xx].push_back(yy);
			d[yy]++;
		}
       topsort();
	}
 return 0;
}






R语言基于机器学习三分类结果、计算三分类混淆矩阵、计算每一个类别对应的特异度(specificity)、灵敏度(sensitivity)、PPV、NPV 阅读详情

相关推荐

英特尔® NUC迷你电脑实现无人值守自动开机配置指南

本文详细介绍了如何配置英特尔® NUC迷你电脑实现无人值守自动开机功能。从BIOS设置到操作系统级配置,涵盖硬件兼容性确认、电源恢复功能设置及常见问题解决,帮助用户轻松实现设备断电后自动恢复运行,适用于家庭服务器、企业终端等多种场景。

weixin_42638178的博客 472

HDU1811 Rank of Tetris 拓扑+并查集

过的莫名其妙的一道题目,之前无限WA ,不知道改了什么地方就ac了 方法是拓扑+并查集  注意:如果信息中同时包含冲突且信息不完全,就输出"CONFLICT Rank of Tetris Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s

821

【初阶】手把手教你轻松上手Denodo | 连接数据库并创建基本视图 (二)

在本教程的第二部分,我们将涵盖:连接到数据库,与创建基本视图。

Denodo的博客 1104

hdu 1811 并查集+拓扑排序+细心

Problem Description 自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名堂要比福布斯富豪榜还响。关于如何排名,这个不用说都知道是根据Rating从高到低来排,如果两个人具有相同的Rating,那就按这几个人的R...

azbjwor1424的博客 266

大语言模型在构建UNSPSC 分类数据中的应用

UNSPSC 是联合国标准产品和服务代码。本文研究如何利用大语言模型生成分类系统的分析

姚家湾博客 1854

01 ArcGIS空间分析--水文分析--利用水文分析方法提取山谷山脊线

ArcGIS空间分析的一个特别好的分析教程是汤国安老师的空间分析的内容。 实例与练习 练习1. 利用水文分析方法提取山脊、山谷线 1. 背景:山脊线、山谷线是地形特征线,它们对地形、地貌具有一定的控制作用。它们与山顶点、谷底点以及鞍部点等一起构成了地形及其起伏变化的骨架结构。因此在数字地形分析中,山脊线和山谷线以及

Meditation 1万+

HDU 1811-Rank of Tetris(拓扑排序+并查集)

Rank of Tetris Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5221    Accepted Submission(s): 1465 Problem Description 自从Lele开发了Ra

Orz~~Orz 1397

计算机组成原理(第三版)唐朔飞-第六章计算机的运算方法-课后习题(1-16)

计算机组成原理(第三版)唐朔飞-第六章计算机的运算方法-课后习题(1-16)

weixin_45735391的博客 8万+

HDU 1811(并查集+拓扑排序)题解

Problem Description自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名堂要比福布斯富豪榜还响。关于如何排名,这个不用说都知道是根据Rating从高到低来排,如果两个人具有相同的Rating,那就按这几个人的RP从高到低来排...

努力,奋斗 476

SAP 经营范围(Operating Concern) 和业务范围 (Business Area) 在核算架构或是管理架构中的区别和联系分别是什么 请给具体的示例

摘要:SAP系统中,业务范围(Business Area)和经营范围(Operating Concern)在核算架构中具有不同功能。业务范围是FI/CO共用维度,用于跨公司码的业务线核算(如电子产品、机械设备),支持内部管理和简单对外报表。经营范围则是CO-PA专属维度,聚焦获利能力分析,可细化到产品+客户+区域组合(如分析手机在华东区域的获利情况)。两者存在层级关联:经营范围包含业务范围作为基础维度,业务范围数据会传递至经营范围进行深度分析。实际应用中需先配置业务范围,再设置经营范围并关联相关维度,共同支

金牌架构师 94

12、信号采样与Z变换的全面解析

本文全面解析了信号采样和Z变换的核心概念与应用。内容涵盖采样基础、采样频率与奈奎斯特率的关系、离散时间处理模拟信号的方法、采样率转换技术,以及Z变换的定义、性质、常见变换对和逆变换计算。通过实例分析和流程图展示,帮助读者深入理解数字信号处理的关键步骤,为相关领域的学习与应用打下坚实基础。

Jerry的专栏 118

【刷题记录】 HDU1811 Rank of Tetris 拓扑排序+并查集

对N个人进行排名。为了方便起见,每个人都已经被编号,分别从0到N-1,并且编号越大,RP就越高。同时Lele从狗仔队里取得一些(M个)关于Rating的信息。这些信息可能有三种情况,分别是"A > B","A = B","A < B",分别表示A的Rating高于B,等于B,小于B。 现在Lele并不是让你来帮他制作这个高手榜,他只是想知道,根据这些信息是否能够确定出这个高手榜,是的话就输出"OK"。否则就请你判断出错的原因,到底是因为信息不完全(输出"UNCERTAIN"),还是因为这些信息中包...

这里是阿安的博客 399

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Rank of Tetris(topsort)

http://acm.hdu.edu.cn/showproblem.php?pid=1811 1 #include <stdio.h> 2 #include <string.h> 3 #include <queue> 4 #include <vector> 5 using namespace std; 6 const ...

weixin_30711917的博客 106

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

HDU 1811(并查集+拓扑排序)

其实好久都没写题解了 本来也不想写这篇题解的 但是上网一看所有题解长得一模一样 也没有什么具体分析(毕竟天下题解一大抄嘛 233333) 还是打算写写这个题的分析吧 首先想想 如果答案成为ok 那么这些关系最终应该组成一条链才是 如果有环那么结果应该冲突 如果是一颗树 那么两颗子树的相对关系没法确定 所以最后的图一定是一条链才能满足所有关系 但是这题有一个等于关系有点麻烦 这...

qq_17078131的博客 303

HDU 1811 并查集+拓扑排序

Rank of Tetris 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1811 Problem Description 自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。 为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名堂要比福布斯富...

weixin_30951231的博客 151

HDU1811(Rank of Tetris)

题目传送门 题意 就是给一个榜单严格按照rating和人品来排序,问能不能排列好,如果能排列好输出"OK",如果存在信息不全,也就是可能A > B,C > B,但是A和C无法确定大小那就信息不全输出"UNCERTAIN"。其他情况就输出"CONFLICT"。 思路 拓扑排序 + 并查集 首先要明白rating相同的,’ = '的两个节点是可以严格排出顺序的。 拓扑排序的序列唯一性:...

weixin_43808717的博客 267

Rank of Tetris——并查集处理后拓扑排序

Problem Description 自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。 为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名堂要比福布斯富豪榜还响。关于如何排名,这个不用说都知道是根据Rating从高到低来排,如果两个人具有相同的Rating,那就按这几个人的RP从高到低来排。 终于,Lele要开始行动了,对N个人进行排名。为了方便起见,每个人都已经被编号,分别从0到N-1,并且

小白之比白更白的博客 212

HDU-1811(拓扑排序+并查集)

题目链接-HDU1811 开始是在并查集专题看到的这道题,然后就往并查集方向想,考虑了各种加点都没有办法解决问题, 后面看题解发现这道题的主体应该是拓扑排序,并查集仅仅是用来帮助解决“=”这个符号,进行删点处理的 AC代码 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <map&gt

lifeforge的博客 372

Rank of Tetris (拓扑排序+并查集+缩点)

自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。 为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名堂要比福布斯富豪榜还响。关于如何排名,这个不用说都知道是根据Rating从高到低来排,如果两个人具有相同的Rating,那就按这几个人的RP从高到低来排。  终于,Lele要开

a1046765624的博客 357

HDU 1811 Rank of Tetris

HDU 1811 Rank of Tetris 题目描述 自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。 为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名堂要比福布斯富豪榜还响。关于如何排名,这个不用说都知道是根据Rating从高到低来排,如果两个人具有相同的Rating,那就按这几...

boke_ggboy 244

hdu Rank of Tetris 并查集 + 拓扑排序

题意: 给出一些大小关系,问根据这些关系

myHelperIsMe的专栏 806

HDU - 1811 (并查集 + 拓扑排序)

读题可以知道当成环的时候会有冲突,当不止有一个拓扑排序的时候信息不完全。 当有相等的时候可以用并查集把他们当成一个节点来处理; 代码如下: #include&lt;stdio.h&gt; #include&lt;string.h&gt; #define mmset(a,b) memset(a,b,sizeof(a)) const int N = 100005; const int M = ...

唐宋元明清的博客 293

拓扑排序--Rank of Tetris

Rank of Tetris 自从Lele开发了Rating系统,他的Tetris事业更是如虎添翼,不久他遍把这个游戏推向了全球。 为了更好的符合那些爱好者的喜好,Lele又想了一个新点子:他将制作一个全球Tetris高手排行榜,定时更新,名堂要比福布斯富豪榜还响。关于如何排名,这个不用说都知道是根据Rating从高到低来排,如果两个人具有相同的Rating,那就按这几个人的RP从高到低来排。 ...

duganlx的博客 563

Rank of Tetris(并查集+拓扑排序)

Rank of Tetris 解题思路:因为题目中存在两个点分数相等的情况,所以可以使用并查集将它们合并起来。构图的时候使用每个点的祖先节点构图。对构造完成的图进行拓扑排序,使用队列每次只能让入度为0的点出队,判断是否有环。如果队列中存在两个及两个以上的点,这说明信心不完全,导致这些不可以比较,如果有环的话,则就说明有矛盾。 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double

多一些不为什么的坚持 546

HDU - 1811(拓扑排序+并查集)

题解:将相等的点并到一个集合里面,然后拓扑排序如果存在环就是矛盾,如果一个队列里面存在多个数就是,不确定,其他都是OK#include<iostream> #include<cstdio> #include<cstring> #include<set> #include<queue> #include<vector> #include<algorithm> using namespace std;

Soul 335

HDU1811---Rank of Tetris (拓扑排序+并查集(好题))

题目来源:https://vjudge.net/problem/HDU-1811题意大致题意是经过m条信息能否得到全部的排名。若是不能,输出原因,冲突或者是不确定,当冲突和不确定都有时,输出冲突。思路感觉这道题最重要的是理解题意,理解‘=’的意思,比如1=2,那么题中有说明:如果两个人具有相同的Rating,那就按这几个人的RP从高到低来排。 这样是否就可以写成:2>1的形式了呢?答案是不能。

Crazy 340
上一篇: poj 2367 Genealogical tree(topsort)
下一篇: POJ 1094 Sorting It All Out(topsort Language: Sorting It All Out Time Limit: 1000MS Memory Limit: )
左眼皮跳跳~
博客等级 码龄13年 17粉丝 400原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值