图论
文章平均质量分 53
二十一画生
嚶其鳴矣求其友聲
展开
-
hdu 1045 Fire Net-二分匹配
这题也可以用搜索来做但用匹配做更简单//Time 0ms,Memory 332K#include#includeusing namespace std;char city[4][5];int n,l1,l2,vis[10],flag[10],p[4][4],q[4][4],pq[10][10];int f(int u){ int i; for(i=0;i<l原创 2013-05-18 15:49:50 · 859 阅读 · 0 评论 -
POJ 3436 ACM Computer Factory
//Time 47ms, Memory 308K#include#include#includeusing namespace std;const int inf=0xfffffff;queueq;int cap[55][55],flow[55][55],d[2505],e[2505],n,p,cnt=0,vis[55][55];void f1(int i){ int j;原创 2013-05-19 09:03:39 · 759 阅读 · 0 评论 -
hdu 1269 迷宫城堡 (并查集)
#includeint fa[10001],di[10001],n,m;int find(int v){ if(fa[v]!=1 && fa[v]!=v) fa[v]=find(fa[v]); return fa[v];}int find1(int v){ if(di[v]!=1 && di[v]!=v) di[v]=find1(原创 2013-06-12 00:27:14 · 1568 阅读 · 0 评论 -
POJ 2253 Frogger
//Time 63ms, Memory 572K#include #include #include using namespace std; class coordinate { public: double x,y; }point[201]; double path[201][201]; //两点间的权值 int main(转载 2013-05-19 08:58:56 · 625 阅读 · 0 评论 -
POJ 1789 Truck History
题意大概是这样的:用一个7位的string代表一个编号,两个编号之间的distance代表这两个编号之间不同字母的个数。一个编号只能由另一个编号“衍生”出来,代价是这两个编号之间相应的distance,现在要找出一个“衍生”方案,使得总代价最小,也就是distance之和最小。#include#includeusing namespace std;int map[2010][2010原创 2013-05-19 16:59:45 · 688 阅读 · 0 评论 -
POJ 1062 昂贵的礼物
最短路问题#include#includeusing namespace std;const int inf=0xfffffff;int dis[101],vis[101],map[101][101],v[101];int n,m;int dijkstra(){ int i,j,sd,node; for(i=1;i<=n;i++) dis[i]原创 2013-05-18 19:25:40 · 1033 阅读 · 0 评论 -
POJ 3259 Wormholes
//Time 250ms, Memory 332K#include#includeusing namespace std;int cnt,n,m1,m2;struct point{ int a,b; double t; point(int a=0,int b=0,double t=0.0):a(a),b(b),t(t){}}p[6000];int bellma原创 2013-05-19 08:55:31 · 671 阅读 · 0 评论 -
hdu 1068 Girls and Boys (二分匹配)
// Time 1062 ms, Memory 4252K#include#includeint map[1010][1010],vis[1010],a[1010],b[1010],k;int f1(int u){ int v; for(v=0;v<k;v++) { if(map[u][v] && !vis[v]) {原创 2013-06-11 16:32:35 · 1430 阅读 · 0 评论 -
hdu 2066 一个人的旅行(Dijkstra求最短路问题)
这题是我在没学Dijkstra算法时做的,所以跟模板有点不一样,但是意思差不多。如果要看标准的Dijkstra算法的话,可以去查有关知识。代码如下:// Time 0ms, Memory 5884K#include#includeint map[1200][1200],v1[1200],v2[1200],l,d1[1200],d;int f(int x){ int i,原创 2013-06-07 20:39:10 · 852 阅读 · 0 评论 -
hdu 1879 继续畅通工程 (并查集)
#include#includeint map[105][105],vis[105][105],ans,n,father[105];int find(int x){ while(x!=father[x]) x=father[x]; return x;}int main(){ int i,j,k,a,b,d,t,min1,min2,state,t原创 2013-06-08 13:45:46 · 835 阅读 · 0 评论 -
hdu 2063 过山车 (二分匹配)
#include#includeint map[510][510],vis[510],a[510],b[510],n,m,k;int f1(int u){ int v; for(v=1;v<=n;v++) { if(map[u][v] && !vis[v]) { vis[v]=1; if原创 2013-06-07 14:06:54 · 731 阅读 · 0 评论 -
POJ 1459 Power Network
最大流-多源多汇问题建立超级源点,超级汇点#include#include#include#includeusing namespace std;const int inf=0xfffffff;queueq;int n,np,nc,m,s,t;int cap[105][105],flow[105][105],d[105],g[105][105];int main()原创 2013-05-18 19:48:07 · 878 阅读 · 0 评论 -
POJ 2031 Building a Space Station
大致题意:就是给出三维坐标系上的一些球的球心坐标和其半径,搭建通路,使得他们能够相互连通。如果两个球有重叠的部分则算为已连通,无需再搭桥。求搭建通路的最小费用(费用就是边权,就是两个球面之间的距离)。#include#includeusing namespace std;int vis[105],n;double map[105][105],l;double dis(原创 2013-06-13 08:56:31 · 1178 阅读 · 9 评论 -
POJ 1860 Currency Exchange
//Time 16ms, Memory 244K#include#includeusing namespace std;int cnt,n,m,s;double v;struct point{ int a,b; double r,c; point(int a=0,int b=0,double r=0.0,double c=0.0):a(a),b(b),r(r),原创 2013-05-19 08:49:52 · 670 阅读 · 0 评论