![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
不可不戒
这个作者很懒,什么都没留下…
展开
-
hdu1102 Constructing Roads
#include #include //最小生成树,或并查集#define MAX 0x7ffffff#define LEN 105int dist[LEN];int map[LEN][LEN];int isvisited[LEN];//初始化void init(){ int i,j; for(i=0;i<LEN;i++) for(j=0;j<LEN;j++) {原创 2013-07-08 21:04:28 · 728 阅读 · 0 评论 -
hdu3790 最短路径问题 (Dijkstra & SPFA)
#include #define INF 0x7fffffff#define MAX 1002struct node{ int len,val;}map[MAX][MAX];int dist[MAX],visited[MAX],cost[MAX];void Dijkstra(int s,int t,int n){ int i,j,min,u; for (i=1;i<=n原创 2013-07-13 14:44:04 · 804 阅读 · 0 评论 -
hdu1217 Arbitrage (Floyd)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1217题解:Floyd求任意两点之间的距离大于1#include #include #define MAXN 32double mp[MAXN][MAXN];int visited[MAXN];char money[MAXN][MAXN];int check(ch原创 2013-09-01 19:20:18 · 596 阅读 · 0 评论 -
hdu3478 Catch (二分图判断)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3478题解:使某一时刻到达该图任意顶点:1.图是联通的,2.无向图的每一个顶点必须保证能够在奇时刻或偶时刻可以进行访问.(二部图的顶点两个顶点集合只能在奇或偶时刻对齐进行访问)#include #include #include #define MAXN 100002us原创 2013-09-07 14:22:20 · 838 阅读 · 0 评论 -
hdu2680 Choose the best route (Dijkstra)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2680#include #include #define MAXN 1001#define INF 0x3f3f3f3fint mp[MAXN][MAXN],n;int dist[MAXN],visited[MAXN];void Dijkstra(int s){ int原创 2013-09-07 15:38:10 · 609 阅读 · 0 评论 -
hdu2066 一个人的旅行 (Dijkstra)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066#include #include #define MAX 1005 #define INF 1000000int map[MAX][MAX]; int dist[MAX],visit[MAX]; int from[MAX],destination[MAX];in原创 2013-09-01 10:59:25 · 641 阅读 · 0 评论 -
hdu2682 Tree (prim)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2682#include #include #include #define MAXN 1000000#define INF 9999999int valid[MAXN+1],prime[MAXN+1];int mp[601][601],vertexs[601];int dis原创 2013-09-07 18:57:52 · 822 阅读 · 0 评论 -
hdu1418 抱歉 (几何欧拉公式)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1418题解: 简单多面体的顶点数V、面数F及棱数E间有关系 V+F-E=2 顶点+面数-2=棱数#include int main(){ unsigned int n,m; while(scanf("%u %u",&n,&m)) { if(n+m==0) b原创 2013-09-02 22:26:15 · 786 阅读 · 0 评论 -
hdu1273 漫步森林
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1273题解:设森林里有N块空地,任意两块空地之间都有一条小径相通,与每块空地相连的路径数为n-1;每经过一块空地(一进一出)经过两条路径,所以答案为(n-1)/2.#include int main(){ int n; while(scanf("%d",&n)&&n原创 2013-09-22 20:58:23 · 994 阅读 · 0 评论 -
hdu1879 继续畅通工程 (prim)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1879题解:已修建道路,边权值赋值0#include #include #define MAXN 102#define INF 9999999int mp[MAXN][MAXN],visited[MAXN],dist[MAXN];int prim(int n){原创 2013-08-26 12:36:37 · 680 阅读 · 0 评论 -
hdu1301 Jungle Roads (prim)
#include #define INF 0x7ffffff#define MAX 50//最小生成树,prim算法int map[MAX][MAX];int visit[MAX],dist[MAX];int prim(int n){ int i,j,min,u,sum=0; for(i=1;i<=n;i++) { dist[i]=map[1][i]; visit[i原创 2013-07-13 13:56:29 · 837 阅读 · 0 评论 -
hdu2647 Reward (拓扑排序)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2647#include #include #include #include #define MAXN 10002using namespace std;vector mp[MAXN];queueQ;int indegree[MAXN],reward[原创 2013-08-22 20:24:24 · 579 阅读 · 0 评论 -
hdu1874 畅通工程续
#include #include #define MAX 0x7ffffffint map[202][202],dist[202],visit[202];//最短路径int Dijsktra(int n,int start,int end){ int i,j,k,min; memset(visit,0,sizeof(visit)); for(i=0;i<n;i++) di原创 2013-07-08 16:20:39 · 681 阅读 · 0 评论 -
hdu1878 欧拉回路
无向欧拉图的欧拉回路存在的充要条件:连通且没有奇点;欧拉路径存在的充要条件:连通且奇点个数为2;有向欧拉图的欧拉回路存在的充要条件:基图连通且所有顶点的入度等于出度;欧拉路径存在的充要条件:基图连通且存在某顶点入度比出度多一,另一顶点出度比入度多一,其余顶点入度等于出度。#include #define MAX 1002int father[MAX],flag[MAX];int find原创 2013-07-10 19:50:42 · 806 阅读 · 2 评论 -
hdu2544 最短路
#include #define MAX 100005#define INF 100000//用c,数组要这么大???才ACint map[MAX][MAX];int dist[MAX],visit[MAX];void Dijkstra(int s,int n){ int i,j,min,v; for(i=1;i<=n;i++) { dist[i]=map[s][i];原创 2013-07-12 20:49:58 · 720 阅读 · 0 评论 -
hdu3018 Ant Trip
/*无向欧拉图的欧拉回路存在的充要条件:连通且没有奇点;欧拉路径存在的充要条件:连通且奇点个数为2*/#include #include #define MAX 100002int father[MAX],flag[MAX];int map[MAX],degree[MAX],odd[MAX];void init(int n){ int i; memset(flag,0,si原创 2013-07-14 15:11:33 · 809 阅读 · 0 评论 -
hdu1596 find the safest road
#include #define INF -99.0#define MAXN 1002double map[MAXN][MAXN],safe[MAXN];int visited[MAXN];void Dijkstra(int s,int t,int n){ int i,j,u; double max; for (i=1;i<=n;i++) { safe[i]=map[s原创 2013-07-20 09:54:54 · 811 阅读 · 0 评论 -
hdu1162 Eddy's picture (prim最小生成树)
#include #include #include #include #define INF 1000000.0#define MAXN 102using namespace std;//最小生成树double map[MAXN][MAXN],dist[MAXN];double px[MAXN],py[MAXN];int visited[MAXN];double dist原创 2013-07-17 20:11:34 · 658 阅读 · 0 评论 -
hdu2112 HDU Today (Dijkstra)
#include #include #include #include #include #define INF 0x3f3f3f3f#define MAXN 155using namespace std;mapm;int mp[MAXN][MAXN],dist[MAXN],visited[MAXN];void init()//初始化{ for(int i=1;i<MA原创 2013-07-16 18:28:04 · 737 阅读 · 0 评论 -
hdu1869 六度分离 (floyd)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1869将每个人看作一个点,问题转化为图,求任意两点之间的距离,距离大于7不符合要求(间隔6个人)#include #include #define INF 99999int main(){ int n,m,i,j,k,flag; int map[102][102]; wh原创 2013-08-08 21:00:54 · 591 阅读 · 0 评论 -
POJ2243 Knight Moves
题目链接:http://poj.org/problem?id=2243#include #include int knight[64][64];void Floyed(){ int i,j,k,x,y; for(i=0;i<64;++i) { for(j=0;j<64;++j) {//棋盘两格之间的相对位置 x=abs(i/8-j/8); y=原创 2013-09-28 16:31:51 · 550 阅读 · 0 评论