最小树形图,,不熟练啊,写错几个地方无限TLE

#include<stdio.h>
#include<string.h>
#include<math.h>
#define N 101
#define inf 0x3fffffff
int flag[N],id[N],pre[N],n,m;
double ms[N];
struct op
{
int x,y;
double w;
}e[N*N];
struct tp
{
double x,y;
}p[N];
double dis(struct tp a,struct tp b)
{
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
double liuzhu(int root)
{
int i,j,nm=n+1;
double sum=0;
while(1)
{
memset(flag,-1,sizeof(flag));
memset(id,-1,sizeof(id));
memset(pre,-1,sizeof(pre));
for(i=1;i<nm;i++)
ms[i]=inf;
for(i=0;i<m;i++)
{
int x=e[i].x,y=e[i].y;
double w=e[i].w;
if(y!=x&&ms[y]>w)
{
ms[y]=w;
pre[y]=x;
}
}
ms[root]=0;pre[root]=root;
for(i=1;i<nm;i++)
{
if(ms[i]==inf)return -1.0;
sum+=ms[i];
}
int res=1;
for(i=1;i<nm;i++)
{
if(flag[i]==-1)
{
int u=i;
while(flag[u]==-1)
{
flag[u]=i;
u=pre[u];
}
if(u==root||flag[u]!=i)continue;
for(int t=pre[u];t!=u;t=pre[t])
id[t]=res;
id[u]=res++;
}
}
if(res==1)break;
for(i=1;i<nm;i++)
if(id[i]==-1)id[i]=res++;
for(i=0;i<m;i++)
{
e[i].w-=ms[e[i].y];
e[i].x=id[e[i].x];
e[i].y=id[e[i].y];
}
root=id[root];
nm=res;
}
return sum;
}
int main()
{
int i,x,a,b,j;
double sum;
while(scanf("%d%d",&n,&m)!=-1)
{
for(i=1;i<=n;i++)
scanf("%lf%lf",&p[i].x,&p[i].y);
for(i=0;i<m;i++)
{
scanf("%d%d",&a,&b);
e[i].x=a;
e[i].y=b;
e[i].w=dis(p[a],p[b]);
}
sum=liuzhu(1);
if(sum<0)printf("poor snoopy\n");
else printf("%.2f\n",sum);
}
return 0;
}

poj 3164 Command Network相关推荐

  1. POJ 3164 Command Network (最小树形图)

    Command Network Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 10136   Accepted: 2946 ...

  2. POJ 3164 Command Network

    Description After a long lasting war on words, a war on arms finally breaks out between littleken's ...

  3. POJ 3164 Command Network(朱刘算法)

    Command Network Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 21481   Accepted: 6117 ...

  4. POj 3164 Command Network最小树形图 模板题 朱刘算法

    Command Network After a long lasting war on words, a war on arms finally breaks out between littleke ...

  5. POJ 3164 Command Network (最小树形图)

    [题目链接]http://poj.org/problem?id=3164 [解题思路]百度百科:最小树形图 ]里面有详细的解释,而Notonlysucess有精简的模板,下文有对其模板的一点解释,前提 ...

  6. [POJ 3164]Command Network(最小树形图,朱刘算法)

    文章目录 title solution code title solution 读完翻译后,很明显就是个朱刘算法的板子题 最小树形图,就是给出一个带权有向图 从中指定一个特殊的结点 root 求一棵以 ...

  7. Command NetWork(POJ-3164)

    Problem Description After a long lasting war on words, a war on arms finally breaks out between litt ...

  8. POJ 2236 Wireless Network 并查集

    Wireless Network 并查集 Crawling in process... Crawling failed Time Limit:10000MS     Memory Limit:6553 ...

  9. Linux command | network

    持续更新中- (1) ip The ip command can show address information, manipulate routing, plus display network ...

最新文章

  1. matlab 图像分割 提取人像_几种典型的图像处理技术(分类 目标提取 目标跟踪 语义分割 实例分割)...
  2. 哈利波特 pdf_干货!哈利波特英文原版pdf免费领,(含音频)词汇量大于新概念!...
  3. 《软件加密与解密》第三版学习日志一
  4. The superclass javax.servlet.http.HttpServlet was not found 问题解决
  5. Spring控制反转(依赖注入)的最简单说明
  6. 退市再上市,泡泡玛特的”盲盒泡泡”这次能吹多大?
  7. nssl1232-函数【数论,欧拉函数,莫比乌斯反演】
  8. 《王者荣耀》回应故障:3个工作日内补发排位赛星积分丢失
  9. java抽象机制_Java很好学:接口+抽象类+事件监听机制
  10. visual studio 中将选中代码相同的代码的颜色设置,修改高亮颜色
  11. Win10系统利用注册表完美设置桌面图标的技巧
  12. 6.郝斌C语言笔记——流程控制
  13. matlab怎么算不定积分,matlab计算不定积分
  14. Re32:读论文 Summarizing Legal Regulatory Documents using Transformers
  15. 中学生应具备的良好的学习习惯
  16. 怎么编辑PDF文件?分享三种好用的编辑方法
  17. 手机短号码(mobile)C++
  18. 如何在未越狱的iOS 设备上安装 ipa
  19. 2018秋招校招济南联通软件研究院笔试题目
  20. U盘重新量产,PE与ubuntu共存

热门文章

  1. 几种知名p2p网贷风险评估及投资回报率【更新2014-07-13】
  2. C++ 判断文件是否存在 不存在创建函数
  3. java下载文件总结
  4. 树梅派学习 8. 轻触按键试验
  5. python界面编程pdf_pythongui设计tkinter菜鸟编程pdf电子版下载
  6. Windows系统打开ftp链接下载文件方法
  7. Cisco(思科)VLAN的配置(详细)
  8. 博科第六代SAN交换机、QLogic与博通HBA卡全面上市
  9. hadoop 指标说明
  10. Chrome谷歌浏览器最小化和页面遮挡后JS代码不稳定和功能失效的解决思路