hdu 1827】的更多相关文章

tarjan一直是我看了头大的问题,省选之前还是得好好系统的学习一下.我按照不同的算法在hdu上选题练习了一下,至少还是有了初步的认识.tarjan嘛,就是维护一个dfsnum[]和一个low[],在dfs树上处理图的连通性等问题.细节处的不同导致算法本身的不同作用. 有向图强连通缩点:大体思路是维护一个栈,满足访问一个点就push到栈里面,当满足low[now]==dfn[now]时出栈,用dfn[]更新low[]当且仅当下一个点在栈内(注意不是递归栈). #include<iostream>…
HDU 1827 Summer Holiday 题目链接 题意:中文题 思路:强连通缩点,每一个点的权值为强连通中最小值,然后入度为0的点就是答案 代码: #include <cstdio> #include <cstring> #include <vector> #include <algorithm> #include <stack> using namespace std; const int N = 1005; const int INF…
http://acm.hdu.edu.cn/showproblem.php?pid=1827 思路:强连通分量缩点后找入度为0的点,然后对于属于该强连通分量的找一个最小耗费的入口. #include <cstdio> #include <cstring> #include <algorithm> #include <iostream> #include <queue> #include <cmath> #include <map…
http://acm.hdu.edu.cn/showproblem.php?pid=1827 题意: 听说lcy帮大家预定了新马泰7日游,Wiskey真是高兴的夜不能寐啊,他想着得快点把这消息告诉大家,虽然他手上有所有人的联系方式,但是一个一个联系过去实在太耗时间和电话费了.他知道其他人也有一些别人的联系方式,这样他可以通知其他人,再让其他人帮忙通知一下别人.你能帮Wiskey计算出至少要通知多少人,至少得花多少电话费就能让所有人都被通知到吗? 思路: 强连通分量,然后统计入度为0的连通分支数量…
n个点m条边 n个权lcy 要叫这个人的花费 m条边 缩点后 新的图中 入度为0的点要通知  通知强连通分量中权值最小的 #include<stdio.h> #include<algorithm> #include<string.h> #include<queue> #include<math.h> #include<stack> using namespace std; #define MAXN 100010 #define inf…
强连通分量——tarjin算法: 这题的思路就是找出多少个出度为0的连通分量,结果就是这些连通分量的元素的最小值相加: 一道很简单的题,改了我好久,= =!~ 贴代码: #include<cstdio> #include<cstring> #include<algorithm> #include<stack> #include<vector> #define maxn 1005 using namespace std; int dfn[maxn]…
Problem Description To see a World in a Grain of Sand  And a Heaven in a Wild Flower,  Hold Infinity in the palm of your hand  And Eternity in an hour.                    -- William Blake 听说lcy帮大家预定了新马泰7日游.Wiskey真是高兴的夜不能寐啊.他想着得快点把这消息告诉大家.尽管他手上有全部人的联系…
<题目链接> 题目大意: 听说lcy帮大家预定了新马泰7日游,Wiskey真是高兴的夜不能寐啊,他想着得快点把这消息告诉大家,虽然他手上有所有人的联系方式,但是一个一个联系过去实在太耗时间和电话费了.他知道其他人也有一些别人的联系方式,这样他可以通知其他人,再让其他人帮忙通知一下别人.你能帮Wiskey计算出至少要通知多少人,至少得花多少电话费就能让所有人都被通知到吗? 解题分析: 强连通缩点,再将所有入度为0的强连通分量中最小的价值相加即可. #include <bits/stdc++…
Summer Holiday Time Limit: 10000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4574    Accepted Submission(s): 2078 Problem Description To see a World in a Grain of Sand And a Heaven in a Wild Flower, Hold Inf…
求出强连通分量,因为强连通中只要有一个人被通知到了,所有人都能被通知到. 缩点以后形成一个DAG,找出那些入度为0的点,累加上它们的权值就是答案.一个点的权值等于SCC中权值最小的那个点. #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <vector> #include <stack> using names…