POJ 2375 Cow Ski Area[连通分量]】的更多相关文章

题目链接:http://poj.org/problem?id=2375题目大意:一片滑雪场,奶牛只能向相邻的并且不高于他当前高度的地方走.想加上缆车是的奶牛能从低的地方走向高的地方,求最少加的缆车数,是的奶牛可以从任意一个角落到达任意另外的角落解题思路:奶牛可以向相邻的不高于他的地方走,相当于u,v之前连通.若想加上缆车是图成为连通图,数目就是max(root, leave);思路同POJ 1236 代码如下: #include<stdio.h> #include<string.h>…
POJ 2375 Cow Ski Area id=2375" target="_blank" style="">题目链接 题意:给定一个滑雪场,每一个点能向周围4个点高度小于等于这个点的点滑,如今要建电缆,使得随意两点都有路径互相可达,问最少须要几条电缆 思路:强连通缩点.每一个点就是一个点.能走的建边.缩点后找入度出度为0的个数的最大值就是答案.注意一開始就强连通了答案应该是0 代码: #include <cstdio> #includ…
Cow Ski Area Time Limit: 1000ms Memory Limit: 65536KB This problem will be judged on PKU. Original ID: 237564-bit integer IO format: %lld      Java class name: Main   Farmer John's cousin, Farmer Ron, who lives in the mountains of Colorado, has recen…
题目地址:POJ 2375 对每一个点向与之相邻并h小于该点的点加有向边. 然后强连通缩点.问题就转化成了最少加几条边使得图为强连通图,取入度为0和出度为0的点数的较大者就可以.注意,当强连通分量仅仅有一个的时候.答案是0,而不是1. 代码例如以下: #include <iostream> #include <string.h> #include <math.h> #include <queue> #include <algorithm> #in…
这个题目用tarjan找联通块,缩点,然后统计出入度为0的点理论上是可行的,但问题是会暴栈.考虑到这个题目的特殊性,可以直接用一次bfs找到数字相同且联通的块,这就是一个联通块,然后缩点,统计出入度即可. #include <iostream> #include <cstdio> #include <cstring> #include <cmath> using namespace std; const int maxn=1e3+9; int a[maxn]…
题目大意:一个W*L的山,每个山有个高度,当且仅当一个山不比它相邻(有公共边的格子)的山矮时能够滑过去,现在可以装化学电梯来无视山的高度滑雪,问最少装多少电梯使得任意两点都可到达 思路:最后一句话已经把强连通模型裸裸地说出来了 那问题变成了一个图最小加几条边变成强连通图的经典问题,比较一下出度为0和入度为0的点的个数的大小即可,还有个特例只有一个SCC的情况 #include<cstdio> #include<string.h> #include<iostream> #…
                                    Cow Ski Area Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3323   Accepted: 919 Description Farmer John's cousin, Farmer Ron, who lives in the mountains of Colorado, has recently taught his cows to s…
Description Farmer John's cousin, Farmer Ron, who lives in the mountains of Colorado, has recently taught his cows to ski. Unfortunately, his cows are somewhat timid and are afraid to ski among crowds of people at the local resorts, so FR has decided…
http://poj.org/problem?id=2375 题意:一个500*500的矩形,每个格子都有一个高度,不能从高度低的格子滑到高度高的格子(但相等高度可以滑),已知可以在2个相邻格子上加桥,使得无视他们的高度就可以互相滑,问最少加多少桥可以使得在任一个格子上都能到达任一个格子. 分析:很容易看出这就是相当于在一个有向图上至少加多少边可以使得其强联通,ans=max(入度0的点数,出度为0的点数),很好理解,可以把出度为0的点挂一条边到入度为0的点上,多了的随便挂.那么现在面临的问题的…
POJ 3045 Cow Acrobats 这是个贪心的题目,和网上的很多题解略有不同,我的贪心是从最下层开始,每次找到能使该层的牛的风险最小的方案, 记录风险值,上移一层,继续贪心. 最后从遍历每一层的风险值,找到其中的最大值 我一开始对sum-p[i].a-p[i].b从小到大排序,这样第一次取出的就是能使最下层的牛的风险最小的方案,在上移一层时,这一层的风险值   为sum-p[i].a-p[i].b-p[0].a,由于p[0].a是固定值,所以第二次直接取出的就是能使该层的牛的风险最小的…