HihoCoder-1870 Jin Yong’s Wukong Ranking List(并查集)
我发现大佬好像都是用拓扑排序写的(本菜鸡不会拓扑哭唧唧
说一下并查集的做法吧...
就是找两人右边的(辣鸡的那个人)那个是否比左边厉害,厉害的话就矛盾。
如果他俩没比较过就把厉害的并到辣鸡的。
(辣鸡的是厉害的上一级
1 #include<stdio.h>
2 #include<algorithm>
3 #include<string.h>
4 #include<map>
5 #include<iostream>
6 #include<string>
7 using namespace std;
8
9 const int maxn=1010;
10 int par[maxn];
11 char a[maxn],b[maxn];
12 map<string,int> p; //把人名转换成数字表示
13
14 int find(int x) //并查集板子
15 {
16 while(x!=par[x]) x=par[x];
17 return x;
18 }
19
20 void unionn(int a,int b)
21 {
22 int fa=find(a);
23 int fb=find(b);
24 if(fa!=fb) par[fa]=fb;
25 }
26
27 int main()
28 {
29 int t;
30 while(scanf("%d",&t)!=EOF){
31 for(int i=1;i<=1000;i++){
32 par[i]=i;
33 }
34 p.clear(); //初始化
35 int cnt=1; //从1开始标记
36 int flag=1,g=1; //flag整体是否有矛盾出现 g本次是否矛盾
37 while(t--){
38 string a,b;
39 cin>>a>>b;
40 if(!p[a]) p[a]=cnt++; //如果这个名字没出现就赋一个新的值
41 if(!p[b]) p[b]=cnt++;
42 int k=20; //不超过20条(再大也行反正20之前迟早会break的:)
43 while(k--){
44 int s=find(p[b]);
45 if(s==p[b]) break; //如果b的上一级的上一级是b自己 b还没被比较
46 if(s==p[a]) {g=0; break;} //b的上一级的上一级的上一级的....看是否是a 是的话矛盾标记
47 }
48 if(g) unionn(p[a],p[b]); //左边的是右边下一级
49 else cout<<a<<' '<<b<<endl,flag=0,g=1; //有矛盾出现 flag标记 g要初始化否则下一次可能会出错
50 }
51 if(flag) printf("0\n");
52 }
53 return 0;
54 }
HihoCoder-1870 Jin Yong’s Wukong Ranking List(并查集)的更多相关文章
- hihoCoder #1870 : Jin Yong’s Wukong Ranking List-闭包传递(递归) (ACM-ICPC Asia Beijing Regional Contest 2018 Reproduction A) 2018 ICPC 北京区域赛现场赛A
P1 : Jin Yong’s Wukong Ranking List Time Limit:1000ms Case Time Limit:1000ms Memory Limit:512MB Desc ...
- 「日常训练」Jin Yong’s Wukong Ranking List(HihoCoder-1870)
题意与分析 2018ICPC北京站A题. 题意是这样的,给定若干人的武力值大小(A B的意思是A比B厉害),问到第几行会出现矛盾. 这题不能出现思维定势,看到矛盾就是矛盾并查集--A>B.A&g ...
- ACM学习历程—Hihocoder 1291 Building in Sandbox(dfs && 离线 && 并查集)
http://hihocoder.com/problemset/problem/1291 前几天比较忙,这次来补一下微软笔试的最后一题,这题是这次微软笔试的第四题,过的人比较少,我当时在调试B题,没时 ...
- 【hihoCoder第十四周】无间道之并查集
就是基础的并查集.0代表合并操作,1代表查询操作.一开始以为会卡路径压缩,忐忑的交了一版裸并查集,结果AC了.数据还是很水的. 以后坚持做hiho,当额外的练习啦~ #include <bits ...
- HihoCoder第十四周:无间道之并查集
#1066 : 无间道之并查集 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 这天天气晴朗.阳光明媚.鸟语花香,空气中弥漫着春天的气息--额,说远了,总之,小Hi和小H ...
- hihoCoder 1515 分数调查(带权并查集)
http://hihocoder.com/problemset/problem/1515 题意: 思路: 带权并查集的简单题,计算的时候利用向量法则即可. #include<iostream&g ...
- hihoCoder #1291 : Building in Sandbox 逆向处理+并查集维护
/** 题目:#1291 : Building in Sandbox 链接:https://hihocoder.com/problemset/problem/1291 题意:就是一个三维的空间里,按照 ...
- hihocoder 1066 无间道之并查集
#1066 : 无间道之并查集 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 这天天气晴朗.阳光明媚.鸟语花香,空气中弥漫着春天的气息……额,说远了,总之,小Hi和小H ...
- [hihoCoder]无间道之并查集
题目大意: #1066 : 无间道之并查集 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 这天天气晴朗.阳光明媚.鸟语花香,空气中弥漫着春天的气息……额,说远了,总之, ...
随机推荐
- 经常使用的Sublime Text 快捷键
最常用的 Sublime快捷键:
- 【Linux】cp命令的各种妙用
CP 功能: 复制文件或目录 说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中.若同时指定多个文件 ...
- ctfhub技能树—文件上传—MIME绕过
什么是MIME MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型.是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访 ...
- vxfs(Veritas File System)扩充目录大小
1.新增加一个磁盘并初始化 # vxdisk list # vxdisksetup -i 3pardata0_22 2.将新增加的磁盘合并到磁盘组中 # vxdg -g testdg01 adddis ...
- SQL Server management studio使用sa连接时报错与伺服器的连接已成功,但在登入程序是发生错误
使用Sql Server management studio的sa用户连接数据库时,报如下错误 解决方法: 1.使用windows验证登录 2.右键点击连接,点击属性,点击安全性,选择混合验证 3.重 ...
- postgresql数据库升级
pg_upgrade官网介绍:https://www.postgresql.org/docs/10/pgupgrade.html 1.查看老版本数据库编译参数值并记录 select name,sett ...
- oracle 12C单实例打PSU
前提: oracle不管打什么样的补丁,readme都是很好的参考资料. Oracle每季度都会更新一个最新的PSU,现在12.1.0.2.0的最新的PSU是Patch 26925311. 由于今天白 ...
- JavaSE 基础知识(常识概念 + 基础语法)问答总结/面试题 —— 讲给应届生的 Java 开源知识项目
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
- U盘UEFI+GPT模式安装CentOS7.X系统
1.制作CentOS7安装盘 还是老套路,开局先制作安装盘,UltraISO软碟通,上图 (1) 打开UltraISO软件,选择"文件"-> "打开" ...
- owners
community/owners.md at master · kubernetes/community https://github.com/kubernetes/community/blob/ma ...