并查集
来源:互联网 发布:东方财富mac版 编辑:程序博客网 时间:2024/05/18 00:01
问题 C: 刘备闯三国之三顾茅庐(一)
时间限制: 1000 MS 内存限制: 128 MB提交: 100 解决: 30
[提交][状态][讨论版]
题目描述
刘备(161年-223年6月10日),字玄德,东汉末年幽州涿郡涿县,西汉中山靖王刘胜的后代。刘备一生极具传奇色彩,早年颠沛流离、备尝艰辛最终却凭借自己的谋略终成一方霸主。那么在那个风云激荡的年代,刘备又是如何从一个卖草鞋的小人物一步一步成为蜀汉的开国皇帝呢?让我们一起拨开历史的迷雾,还原一个真实的刘备。
公元207年冬至,当时驻军新野的刘备在徐庶的建议下,到南阳卧龙岗拜访诸葛亮。这是刘备第一次拜访诸葛亮的故事。三国演义记载的事,由于诸葛亮出游去了,导致刘备无功而返。然而据我考古发现,其实诸葛亮是抛出了如下的问题,想考察刘备本人的谋略、以确定其是否是自己要效忠的那个人:
由于战事频发,朝廷派兵往n(2<=n<=10000)个城镇押运粮草,但是沟通不顺畅,导致有些城镇粮草多运了,而有些城镇则少运了。由于战争的影响,一些道路被毁坏,但城镇之间仍有m(0<=m<=50000)条尚未损毁的道路,诸葛亮想知道是否有可能使得利用现有的道路,重新在城镇间运载粮草,使得每个城镇需要的粮草不多也不少?
刘备为人宽厚仁爱,但对此类问题也是束手无策,这时候就是是你表现的时候了。
输入
第一行包含两个整数n(2<=n<=10000) 和m(0<=m<=50000)。
以下n行,每一行包括一个整数,分别表示城镇0到城镇n-1多运的粮草,如果为负数,则表示少运了。保证输入中,这n个数和为0。
以下m行,每一行包含两个整数x,y(0<=x<y<=n-1),表示城镇x和城镇y存在一条道路。
输出
如果存在一种运载方案,输出POSSIBLE,否则输出IMPOSSIBLE。
样例输入
100
-75
-25
-42
42
0 1
1 2
3 4
样例输出
#include#include #include using namespace std;const int maxz = 10001;int father[maxz];void makeset(int x){ father[x]=x;}int find(int x) { if (x != father[x]) father[x] = find(father[x]); return father[x];}int main(){ int n, m, x, y,c,b; cin>>n>>m; int a[n]; for(int i=0; i >a[i]; for(int i=0; i >x>>y; c=find(x);b=find(y); father[max(c,b)]=min(c,b); } for(int i=0; i
- HDU3938 并查集 并查集
- 并查集(集并查)
- HDU1232 并查集<并>
- 并查集
- 数据结构-并查集
- 并查集
- 并查集!
- 并查集
- 并查集
- 并查集
- 并查集
- 并查集总结
- 并查集学习
- 并查集
- 并查集
- 并查集
- 所谓并查集
- 并查集
- onsubmit="return check();"和onsubmit="check();"的区别
- 【辛普森积分*模板】2017河工大校赛 B地狱飞龙
- xListView实现上、下拉刷新数据
- 编译openssl for android
- Perhaps you are running on a JRE rather than a JDK?
- 并查集
- Android中EditText的inputType属性的详解
- 读程序
- ListView——适配器
- 数据库操作之商品展示
- SQL批量行转列已经多个字段拼接
- 数字货币钱包数据迁移和导入
- centos 使用pip 安装mysqldb错误
- Qt获取所给文件夹下的所有文件夹列表