1701. Ostap and Partners(并查集-关系)
又是类似食物链的这一类题
这题是找与根节点的和差关系 因为0节点是已知的 为0 那么所有的都可以转换为与0的和差关系
可以规定合并的两节点 由大的指向小的 然后再更新和差关系
有可能最后有的不在0集合中 这时要确定最大初值 当然根据集合中出现的负值来确定 题目中工资不能出现负值 也不可大于10^9 在处理完关系后 再判断一下这两个条件 不满足的话就输出m
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstring>
#include<cstdlib>
using namespace std;
#define N 50010
#define LL long long
#define maxz 1000000000
int n,m;
int f[N];
LL r[N],mm[N];
int find(int x)
{
if(x!=f[x])
{
int o = f[x];
f[x] = find(f[x]);
r[x] += r[o];
}
return f[x];
}
int main()
{
int i,a,b,c;
int flag = ,tx = maxz;
scanf("%d%d",&n,&m);
for(i = ; i < n ; i++)
{
f[i] = i;
r[i] = ;
}
for(i = ;i <= m ; i++)
{
scanf("%d%d%d",&a,&b,&c);
if(flag)
continue;
int x = find(a),y = find(b);
if(x!=y)
{
if(x<y)
{
swap(x,y);
swap(a,b);
c = -c;
}
f[x] = y;
r[x] = -r[a]+r[b]+c;
}
else
{
if(r[a]-r[b]!=c)
{
flag = ;
tx = i; }
}
}
for(i = ; i < n ; i++)
{
int ho = find(i);
if(ho!=)
{
if(r[i]<)
{
mm[ho] = max(mm[ho],-r[i]);
}
}
}
for(i = ; i < n ; i++)
{
int ff = find(i);
if((r[i]+mm[ff])>maxz||(r[i]+mm[ff])<)
{
flag = ;
tx = m;
break;
}
}
if(flag)
{
printf("Impossible after %d statements\n",tx);
return ;
}
puts("Possible");
printf("0\n");
for(i = ; i < n ; i++)
{
int ff = find(i);
printf("%lld\n",r[i]+mm[ff]);
}
return ;
}
1701. Ostap and Partners(并查集-关系)的更多相关文章
- 并查集+关系的传递(poj 1182)
题目:食物链 题意:给定一些关系.判断关系的正确性,后给出的关系服从之前的关系: 思路:难点不在并查集,在于关系的判断,尤其是子节点与根节点的关系的判断: 这个关系看似没给出,但是给出子节点与父节点的 ...
- POJ 1182 食物链 经典并查集+关系向量简单介绍
题目: 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种. 有 ...
- POJ 1733 Parity game 【带权并查集】+【离散化】
<题目链接> 题目大意: 一个由0,1组成的序列,每次给出一段区间的奇偶,问哪一条信息不合法. 解题分析: 我们用s[i]表示前i个数的前缀和,那么a b even意味着s[b]和s[a- ...
- noip 2010 关押罪犯 二分答案+二分图染色 || 并查集
题目链接 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用"怨气值&q ...
- 浅谈并查集&种类并查集&带权并查集
并查集&种类并查集&带权并查集 前言: 因为是学习记录,所以知识讲解+例题推荐+练习题解都是放在一起的qvq 目录 并查集基础知识 并查集基础题目 种类并查集知识 种类并查集题目 并查 ...
- poj 1182 食物链(关系并查集)
食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 62824 Accepted: 18432 Description ...
- Find them, Catch them(POJ 1703 关系并查集)
Find them, Catch them Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 38668 Accepted: ...
- Codeforces 766D. Mahmoud and a Dictionary 并查集 二元敌对关系 点拆分
D. Mahmoud and a Dictionary time limit per test:4 seconds memory limit per test:256 megabytes input: ...
- poj 2492(关系并查集) 同性恋
题目;http://poj.org/problem?id=2492 卧槽很前卫的题意啊,感觉节操都碎了, t组测试数据,然后n,m,n条虫子,然后m行,每行两个数代表a和b有性行为(默认既然能这样就代 ...
随机推荐
- Winform 下拉框绑定问题
在Winform中下拉框绑定的时候只能读到text属性值,Id的值不管怎么搞都读取不到,所以就百度找到了一种方式: public void CmdBind() { var data = _logic. ...
- ajaxFileUpload - Post file and data together
jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId = 'jUploadFrame' ...
- Linux 服务器如何禁止 ping 以及开启 ping
Linux 默认是允许 ping 响应的,也就是说 ping 是开启的,但 ping 有可能是网络攻击的开始之处,所以关闭 ping 可以提高服务器的安全系数.系统是否允许 ping 由2个因素决定的 ...
- YII千万级PV架构经验分享--俯瞰篇--业务扩展演变
hello,大家好,我是方少,世上不如意事十有八九吧,即使你感到很满意,也有人感觉太差了,总得感觉我们技术人员都是一个人在战斗,感情却是最深的,一起吃过苦才难忘吧.娇妻艳女,你失意了会和你一起吃苦吗? ...
- 如何实现phpcms v9_4X版本tag的伪静态?
这两个月来写的文章越来越少了,不是懒,因为太忙了--为客户赶做网站.因为客户指定要使用phpcms v9,还要求使用phpcms v9_42版本实现tag伪静态,在接手的时候phpcms v9_42是 ...
- @Html.TextBox 的使用
@Html.TextBox( }); //限制 text 的最大输入字符数为 10个 @Html.TextBox("users","",new {@class= ...
- jooml二次开发---添加文章组件
在写一个joomla组件的时候需要手动添加excel表格,并把表格当做文章的内容添加到前台文章中, 开始不知道怎么下手,索性先把一个基本的组件写出来,在joomla网站上测试是可以访问这个组件的,在p ...
- Django文档——Model字段选项(Field Options)
建立一个简易Model class Person(models.Model): GENDER_CHOICES=( (1,'Male'), (2,'Female'), ) name=models.Cha ...
- Android的ProgressBar以及自定义进度条
1.xml文件 activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/an ...
- (转)《深入理解java虚拟机》学习笔记8——Tomcat类加载器体系结构
Tomcat 等主流Web服务器为了实现下面的基本功能,都实现了不止一个自定义的类加载器: (1).部署在同一个服务器上的两个web应用程序所使用的java类库可以相互隔离. (2).部署在同一个服务 ...