每个字符串可看成一点,每两个字符串不相同的字母的数量可看成两点之间的距离。求1/Q的最大值即相当于求最小生成树,用prim即可。#include<iostream>#include<stdio.h>#include<string.h>#define MAXD 2010#define INF 0x3f3f3f3fusing namespace std;int N,graph[MAXD][MAXD],res;char data[MAXD][8];void MST_PRIM(){ int key[MAXD],flag,p; bool vis[MAXD]; mems Read More
posted @ 2013-01-21 17:43 longlongago Views(120) Comments(0) Diggs(0) Edit
求最小生成树的最大边。#include<iostream>#include<stdio.h>#include<string.h>#define MAXD 510#define INF 0x3f3f3f3fusing namespace std;int T,N,graph[MAXD][MAXD],res;void MST_PRIM(){ int vis[MAXD],key[MAXD]; memset(vis,0,sizeof(vis)); memset(key,0x3f,sizeof(key)); key[1]=0; int i,j; for(i=1;i< Read More
posted @ 2013-01-21 15:50 longlongago Views(146) Comments(0) Diggs(0) Edit
用prim求最小生成树有点类似Dijkstra,把当前节点所联接的权重最小的边依次加入最小生成树中。#include<iostream>#include<stdio.h>#include<string.h>#define MAXD 110#define INF 0x3f3f3f3fusing namespace std;int N,graph[MAXD][MAXD],res,key[MAXD];void MST_PRIM(){ bool vis[MAXD]; memset(vis,0,sizeof(vis)); int k,i,t,w; for(i=1;i& Read More
posted @ 2013-01-21 11:09 longlongago Views(127) Comments(0) Diggs(0) Edit