poj1789--prim
来源:互联网 发布:广电网络机顶盒价格 编辑:程序博客网 时间:2024/05/18 06:19
每天进步一点点~
今天写的是poj1789
题目的大致意思是:
给很多个长度为7的字符串,判断字符串的最小衍生数
使用的是prime算法
#define LOCAL#include <stdio.h>#include <string.h>#define MAXN 2000 + 10#define MAXL 7+10char truckTypes[MAXN][MAXL];int visit[MAXN];int distance[MAXN];int disit(char *arg1, char *arg2){ int dif = 0; for(int i = 0; i < 7; i++) { if(arg1[i] != arg2[i]) dif++; } return dif;}int main(){#ifdef LOCAL freopen("C:\\Users\\Administrator\\Desktop\\ACMTempIn.txt", "r", stdin); freopen("C:\\Users\\Administrator\\Desktop\\ACMTempOut.txt", "w", stdout);#endif int row; int i,j,k,v,min,result = 0; while(scanf("%d", &row) && row != 0) { result = 0; k = 0; memset(truckTypes, 0, sizeof(truckTypes)); memset(visit, 0, sizeof(visit)); memset(distance, 0, sizeof(distance)); for(i = 0; i < row; i++) { scanf("%s", truckTypes[i]); } visit[0] = true; //初始化distance数组 for(i = 0; i < row; i++) { distance[i] = disit(truckTypes[0],truckTypes[i]); } //选择在distance中的最短路径 for(i = 1; i < row; i++) { min = 9; for(j = 1; j < row; j++) { if(visit[j] == false && distance[j] < min) { min = distance[j]; v = j; } } visit[v] = true; result += min; //更新distance结果集 for(j = 0;j < row; j++) { k = disit(truckTypes[v], truckTypes[j]); if(visit[j] == false && distance[j] > k) distance[j] = k; } } printf("The highest possible quality is 1/%d.\n", result); } return 0;}
- poj1789 Prim
- poj1789--prim
- poj1789(prim)
- prim poj1789
- poj1789 prim
- poj1789 prim算法
- poj1789 prim算法
- poj1789之Prim
- POJ1789(Prim算法)
- prim算法(poj1789)
- poj1789 Truck History(Prim)
- POJ1789 Truck History【Prim】
- poj1789(prim)
- POJ1789《Truck History》方法:Prim
- Prim POJ1258 POJ2485 POJ1789 POJ1751
- poj1789 prim最小生成树
- POJ1789 Truck History(kru, prim)
- poj1789 Truck History(Prim算法实现)
- java多线程总结六:经典生产者消费者问题实现
- oracle pl/sql 基础
- 基于S3C2440的Linux内核移植和yaffs2文件系统制作
- CheckBox 全选和反选 JS
- Bada学习-(十)终止应用
- poj1789--prim
- 当你扛不住的时候就读一遍........
- 记录一些结构体
- 碰到问题时不要直接就反应说那是不可能
- 回滚段探究
- TWaver Java培训课程视频
- RMAN-05501 RMAN-05001
- win32上多线程使用setTimeEvent可能引起死锁
- C++桶排序