博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 3026 (最小生成树)
阅读量:7251 次
发布时间:2019-06-29

本文共 949 字,大约阅读时间需要 3 分钟。

题意:起点开始有超过100个人,总共不会超过100个外星人,问把所有的外星人都搜出来花的最小时间。一条路径上的时间跟人数是无关的,只跟路径长度有关。

思路:刚开始人都在起点,当派一定人数去最近的外星人后,起点就变成两个了,然后从两个起点去最近的外星人,起点就变成三个了,,,,这就是最小生成树了。

 

include
#include
#include
#include
#include
const int N=251;const int inf=0x3fffffff;using namespace std;int num,f[N],n,m,k,map[51][51],dir[4][2]={0,1,0,-1,1,0,-1,0};bool vis[51][51];char cap[51][51];struct edge{ int st,ed,w;}e[N*N];struct node{ int x,y;}p[N];void addedge(int x,int y,int w){ e[num].st=x;e[num].ed=y;e[num++].w=w;}int dis(int i,int j){ return abs(p[i].x-p[j].x)+abs(p[i].y-p[j].y);}int cmp(void const *a,void const *b){ edge *c,*d; c=(edge *)a; d=(edge *)b; return c->w-d->w;}int find(int a){ if(a!=f[a]) f[a]=find(f[a]); return f[a];}void bfs(int u){ queue
Q; edge cur,next; int i,j,x,y; for(i=0;i
=0&&x
=0&&y
next.w) { map[x][y]=next.w; if(vis[x][y]==false) {Q.push(next);vis[x][y]=true;} } } } } for(i=1;i

 

 

转载地址:http://knhbm.baihongyu.com/

你可能感兴趣的文章
MYSQL主从数据同步
查看>>
javascript数组操作
查看>>
linux中父进程退出时如何通知子进程
查看>>
linux 缩减文件系统大小 LVM
查看>>
对比文件md5值实现去重文件
查看>>
C#设计模式之二十三解释器模式(Interpreter Pattern)【行为型】
查看>>
js处理中文乱码记录/nodejs+express error 413
查看>>
基于Keepalived实现LVS双主高可用集群
查看>>
SqlServer 使用脚本创建分发服务及事务复制的可更新订阅
查看>>
什么是Floating (浮动)规则?
查看>>
分布式文件系统-FastDFS
查看>>
HTML5 rotate 做仪表盘
查看>>
为什么说荆州松滋刘氏采穴堂是刘开七、刘广传的后裔
查看>>
React中使用Ant Table组件
查看>>
第四篇 快速、轻量、可扩展、易于使用的EmEditor
查看>>
MySQL删除小写记录
查看>>
用shell脚本收集查询IP信息的网站
查看>>
shiro整合oauth
查看>>
超级网管员——网络管理
查看>>
AjaxControltoolkit(工具包)安装步骤说明
查看>>