随笔分类 -  图论

摘要:暑假里的一道题了,经典BFS。正好开始学C++,于是用queue实现一下,还要练习培养一下代码风格。最近用ubuntu用的有点不习惯win7了。囧,ubuntu下没有熟悉的IDE。ubuntu下的codeblocks感觉有点难用,向马学长学习,学习Vim中,用的不是很习惯,要努力。View Code 1 #include <iostream> 2 #include <queue> 3 #define size 100005 4 using namespace std; 5 queue <int> x; 6 int visit[size],step[size] 阅读全文
posted @ 2012-09-13 21:49 时光旅行的懒猫 阅读(262) 评论(0) 推荐(0)
摘要:最短路问题。这个题也够DT。。出题者真会YY。题目链接http://poj.org/problem?id=3259两个算法。一个是bellman-ford一个就是他的队列实现。也就是对他的优化spfa算法。bellman-ford算法View Code 1 #include<stdio.h> 2 #include<string.h> 3 #define INF 1000000 4 int N,F,M,W,en;//N 农场个数,F 农田个数 M路径条数 W虫洞个数 en边数 5 int dist[510]; 6 typedef struct node 7 { 8 int 阅读全文
posted @ 2012-08-15 20:47 时光旅行的懒猫 阅读(204) 评论(0) 推荐(0)
摘要:题目链接http://poj.org/problem?id=1125最短路的题目。此题的题意是相当蛋疼啊。来看翻译下输入输出输入你的程序包含多组股票经纪人的输入数据。每组以股票经纪人的人数开始。接下来的几行是每个经纪人与其他人接触的一些信息,包括这些人都是谁,以及将讯息传达到他们所需的时间。每个经纪人与其他人接触信息的格式如下:开头的第一个数表示共有n个联系人,接下来就有n对整数。每对整数列出的第一个数字指的是一个联系人(例如,一个'1'是指编号1的人),其次是在传递一个信息给那个人时所采取分钟的时间。没有特殊的标点符号或空格规则。每个人的编号为1至经纪人数目。所花费的传递时间 阅读全文
posted @ 2012-08-15 20:43 时光旅行的懒猫 阅读(410) 评论(0) 推荐(0)
摘要:题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1874最短路Dijkstra模板题View Code 1 #include<stdio.h> 2 #include<string.h> 3 #define N 1000000 4 int map[250][250],visit[250],lowcost[250]; 5 void dis(int n,int s,int t) 6 { 7 int i,j,k,min; 8 for(i=0;i<n;i++) 9 {10 visit[i]=0;11 l... 阅读全文
posted @ 2012-08-15 20:34 时光旅行的懒猫 阅读(237) 评论(0) 推荐(0)
摘要:这两个题都是畅通工程的。杭电上真是各种畅通工程。1102 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1102还是用的Prim算法。View Code 1 #include<stdio.h> 2 #include<string.h> 3 #define N 1000000 4 int map[110][110],lowcost[110]; 5 int visit[110]; 6 int prim(int maxminum) 7 { 8 int sum=0,min,k,i,j; 9 memset(visit,0,s... 阅读全文
posted @ 2012-08-15 20:27 时光旅行的懒猫 阅读(225) 评论(0) 推荐(0)
摘要:题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1879还是最小生成树的模板题我用的Prim算法View Code 1 #include<stdio.h> 2 #include<string.h> 3 int map[110][110],lowcost[110],visit[110]; 4 #define N 1000000 5 int prim(int maxminum) 6 { 7 int i,sum,j,k,min; 8 for(i=1;i<=maxminum;i++) 9 {10 l... 阅读全文
posted @ 2012-08-15 20:19 时光旅行的懒猫 阅读(197) 评论(0) 推荐(0)
摘要:今天学的最小生成树,先放上这个裸的题。题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1233Prim算法View Code 1 #include<stdio.h> 2 #include<string.h> 3 int map[110][110],lowcost[110],visit[110]; 4 #define N 1000000 5 int prim(int maxminum) 6 { 7 int i,sum,j,k,min; 8 for(i=1;i<=maxminum;i++) 9 {10 lowco... 阅读全文
posted @ 2012-08-06 15:18 时光旅行的懒猫 阅读(188) 评论(0) 推荐(0)
摘要:题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2094图论 拓扑排序 不过难点是输入的是字符 用STL mapView Code 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<map> 5 using namespace std; 6 map<string,int>p; 7 int o[2001][2001],key[2001]; 8 char str1[100],str2[100]; 9 in 阅读全文
posted @ 2012-08-03 20:52 时光旅行的懒猫 阅读(202) 评论(0) 推荐(0)
摘要:题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1285图论 最简单的拓扑排序 寻找入度为0的点删掉 然后让跟它相连的点入度减一View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 int map[501][501],topp[501],inde[501]; 5 void toppsort(int n) 6 { 7 int i,j,k; 8 for(i=1;i<=n;i++) 9 {10 for(j=1;j<= 阅读全文
posted @ 2012-08-03 20:48 时光旅行的懒猫 阅读(160) 评论(0) 推荐(0)
摘要:题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1241最基本的图论问题DFS 和BFS都能做DFSView Code 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #define maxn 107 5 char map[maxn][maxn];//邻接矩阵存图 6 int visit[maxn][maxn];//标记节点是否被访问过0表示未被访问过1表示访问过 7 int dir[8][2] = {{0,1},{1,1},{- 阅读全文
posted @ 2012-08-03 17:53 时光旅行的懒猫 阅读(188) 评论(0) 推荐(0)
摘要:题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1181此题多种方法。比如说Flyod传递闭包 就能搞定 这里只写DFS和BFS熟悉下。只有DFS是我写的,其他的都是同学的。DFSView Code 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 #define N 30 5 int m[N][N],flag,visit[N]; 6 void dfs(int n) 7 { 8 int i; 9 if(n=='m'- 阅读全文
posted @ 2012-08-02 10:07 时光旅行的懒猫 阅读(531) 评论(0) 推荐(0)