poj——1789(图论之最小生成树的简单应用)
来源:互联网 发布:word转jpg软件 编辑:程序博客网 时间:2024/06/03 05:40
题目地址:http://poj.org/problem?id=1789
图论(最短路、最小生成树)部分小结的地址:http://www.cnblogs.com/aiyelinglong/archive/2012/03/26/2418707.html
小结:现在才知道原来prime和dijkstra只有很小一部分不一样。
#include <iostream>#include <cmath>#include <string>#include <cstring>#include <algorithm>#include <cstdio>using namespace std;typedef long long ll;#define INF 0xfffffff#define MAX(a,b) a>b?a:b#define MIN(a,b) a>b?b:a#define N 2005char s[N][10];short int map[N][N];short int visited[N];int pos[N];int n;void prime(int st){memset(visited,0,sizeof(visited));visited[st]=1;for(int i=0;i<n;i++){pos[i]=map[st][i];}int minn,next,sum=0,j;for(int i=1;i<n;i++){minn=INF;for(j=0;j<n;j++){if(!visited[j]&&pos[j]<minn){next=j;minn=pos[j];}}visited[next]=j;sum+=minn;for(int j=0;j<n;j++){if(!visited[j]&&map[next][j]<pos[j]){pos[j]=map[next][j];}}}printf("The highest possible quality is 1/%d.\n",sum);//cout<<sum<<endl;}int main(){ int i,j,k,t; int m,num,count; while(scanf("%d",&n)!=-1&&n){ cin>>s[0]; for(i=1;i<n;i++){ cin>>s[i]; for(j=0;j<i;j++){ count=0; for(k=0;k<7;k++){ if(s[i][k]!=s[j][k]) count++; } map[i][j]=count; map[j][i]=count; } } prime(0); } return 0;}
- poj——1789(图论之最小生成树的简单应用)
- POJ 1789 Truck History【最小生成树简单应用】
- POJ 3228 最小生成树的应用
- POJ - 1789 Truck History(最小生成树简单题)
- prime(最小生成树)——POJ 1789
- POJ 1789 (最小生成树之Kruskal算法)
- POJ 3026 bfs+最小生成树的应用
- 简单图论-最小生成树—kruskal+prim
- POJ 1258Agri-Net 简单的最小生成树
- poj 2349(最小生成树应用)
- poj 3522(最小生成树应用)
- POJ - 1251 Jungle Roads(最小生成树简单题)
- POJ - 2421 Constructing Roads(最小生成树简单题)
- POJ - 1258 Agri-Net(最小生成树简单题)
- POJ 1251 Jungle Roads(最小生成树【简单】)
- POJ 2421 Constructing Roads(最小生成树简单题目)
- POJ 1258 (简单最小生成树,prim算法)
- poj-1258(Agri-Net)【图的最小生成树】
- 更改eclipse(myeclipse) author的默认名字(注释的作者)
- 编程的原则
- struts2 全局格式化,格式化时间,金钱,数字
- 关于pc2的搭建
- python的异常处理
- poj——1789(图论之最小生成树的简单应用)
- JavaScript学习笔记(四十三) 迭代器
- poj 1269 Intersecting Lines (判断两条直线的状态)
- CGAffineTransform 放射变换
- 智能指针std::auto_ptr
- 美女壁纸
- 制作任务栏托盘菜单
- IT界三大定律:摩尔定律、反摩尔定律、安迪-比尔定律
- 【心路】女攻城师走在移动互联网道路的这两年