题目描述

有一个神秘的小国坐落在南方的青山之上,只有当黄昏时,落日耀眼的余晖刺破薄雾的遮拦,有机缘者才可看到小山上面的n个美丽的村庄。

传说这个古老的国家里有m条枢纽管道,每一条苍老的管道连接着两个村庄,千百年来为村民提供水源的流通。

n个村庄里只有一个水库,从有水库的村庄通过这些枢纽管道向其它村庄提供水源。大家都明白水往低处流,所有村庄都能得到水库的供水。

黄小明就是那个有机缘者,同时他也是个偏执狂(把小猫绑在一起的那个变态小明),他迫切的想要知道水库应该在哪一个村庄,你能帮他解决疑惑吗?

输入输出格式

输入格式:

第一行输入n,m<=300。第二行输入n个正整数,第i个数表示第i个村庄的海拔。之后m行每行两个数表示这两个村庄之间有一条道路。(同海拔之间不能相互流水)

输出格式:

若存在这样的村庄,输出两行:

第一行为“Oui, j'ai trouve la solution.”。

第二行为村庄的编号。

若不行,请输出“Non”(不包括引号,可参见样例)

输入输出样例

输入样例#1: 复制

4 2
1 2 3 4
1 2
3 4

输出样例#1: 复制
Non

紫色诱惑三:

题意挺明确的,

思路也挺明确的,,吧。、

并查集,找祖先。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<algorithm>
 5 #include<cstring>
 6 using namespace std;
 7
 8 int n,m,x,y;
 9 int a[302],fa[302];
10
11 int find(int s)
12 {
13     if(fa[s]==s) return s;
14     else return fa[s]=find(fa[s]);
15 }
16
17 void connect(int x,int y)
18 {
19     x=find(x);
20     y=find(y);
21     fa[x]=y;
22 }
23
24 int main()
25 {
26     scanf("%d%d",&n,&m);
27     for(int i=1;i<=n;++i)
28     {
29         scanf("%d",&a[i]);
30         fa[i]=i;
31     }
32     for(int i=1;i<=m;++i)
33     {
34         scanf("%d%d",&x,&y);
35         if(a[x]>a[y]) connect(y,x);   //如果x的海拔>y的海拔,那么就让y的祖先=x的祖先。
36         else connect(x,y);            //相反。
37     }
38     for(int i=2;i<=n;++i)
39     {
40         if(find(i)!=find(i-1))        //判断每个点的祖先是否都一样。
41         {
42             printf("Non");
43             return 0;
44         }
45     }
46     printf("Oui, j'ai trouve la solution.\n");
47     printf("%d",find(1));
48     return 0;
49  } 

 

转载于:https://www.cnblogs.com/Mary-Sue/p/9126116.html

P1394 山上的国度相关推荐

  1. ny20 吝啬的国度

    吝啬的国度 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有 ...

  2. P3196 [HNOI2008]神奇的国度(弦图的最小染色问题)

    整理的算法模板合集: ACM模板 题目传送门 K国是一个热衷三角形的国度,连人的交往也只喜欢三角原则.他们认为三角关系:即AB相互认识,BC相互认识,CA相互认识,是简洁高效的.为了巩固三角关系,K国 ...

  3. NYOJ 20 吝啬的国度(深搜)

    描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设 ...

  4. NYOJ 20 吝啬的国度 广度优先搜索

    吝啬的国度 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有 ...

  5. 腐烂国度2巨霸版计算机学知识,《腐烂国度2巨霸版》新手攻略 新手入门玩法技巧大全...

    导 读 腐烂国度2巨霸版有很多游戏技巧玩家们还未发现,但是一旦用上会让游戏变的非常有趣.下面为大家带来的是腐烂国度2巨霸版新手游戏技巧汇总,一起来看看腐烂国度2都有什么技巧吧. 1.倒车撞人不掉耐久. ...

  6. NYOJ 20 吝啬的国度 (搜索)

    吝啬的国度 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有 ...

  7. 腐烂国度2怎么学计算机,腐烂国度2按键操作说明 腐烂国度2怎么操作

    腐烂国度2日前已经正式发售,那么在游戏中玩家该怎么操作呢?下面带来腐烂国度2按键操作说明,一起来看看吧. 腐烂国度2按键操作说明 操作介绍 W/S/A/D:控制角色移动 Shift+W:冲刺 鼠标左键 ...

  8. ACM题目————吝啬的国度

    描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设 ...

  9. [HNOI2008]神奇的国度

    1006: [HNOI2008]神奇的国度 Time Limit: 20 Sec  Memory Limit: 162 MB [Submit][Status][Discuss] Description ...

最新文章

  1. 验证环境中的program为什么必须是automatic
  2. 分别用Eigen和C++(OpenCV)实现图像(矩阵)转置
  3. GitHub入门与实践 读书笔记一:欢迎来到GitHubde世界
  4. Linux编程里getopt_long_only函数用法详解
  5. SQL Server--通过存储过程生成表数据的脚本
  6. 基于分位数回归的静态CoVaR计算 案例与代码
  7. TypeScript 3.7 发布,带来 Optional Chaining 等特性
  8. [转]浅析GPU计算——cuda编程
  9. ~~Bellman-Ford算法
  10. linux(Centos5.1)升级至2.6.19内核+L7实现-- 续限P2P软件
  11. char 赋值 加入变量_王牌编程语言Java常量、变量、数据类型详解
  12. Spring boot 学习二:入门
  13. pytorch int64的tensor怎么转换成float64
  14. CAS在Tomcat中实现单点登录
  15. win7局域网拷贝其他计算机文件,局域网共享,教您win7局域网文件共享怎么设置
  16. 投影仪怎么安装小容量软件?5款小体积应用下载搞定内存不足
  17. 计算机视觉方向简介 | 深度学习3D重建
  18. ubuntu18 dso安装
  19. 【编译原理入门】–编译器compiler
  20. 电脑不接扩展屏时,打开应用后,窗口跑到屏幕外,怎末办?

热门文章

  1. Gym 100733G No Negations
  2. extracting lines bases a list using awk
  3. ASP基础教程:ASP脚本变量、函数、过程和条件语句
  4. ubuntu 12 04下安装JDK7
  5. Asp.Net递归遍历页面控件实例
  6. InfoPath: Passing Command Line parameters to a new form
  7. LeetCode(566)——重塑矩阵(JavaScript)
  8. 数据库---基础知识
  9. 【Vue】—生命周期函数
  10. JavaScript学习(六十六)—字符串对象常用的属性和方法总结以及数组元素的排序问题