POJ3436 Command Network

最小树形图裸题


傻逼poj回我青春

wa wa wa 的原因竟然是需要%.2f而不是.2lf

我还有英语作业音乐作业写不完了啊啊啊啊啊啊啊啊啊

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <vector>
#define fir first
#define sec second
using namespace std;
const int N = 1005, M = 1e6+5, inf = 1e9+7; int n, m, x[N], y[N];
struct edge {
int u, v;
double w;
} e[M];
inline double dis(int u, int v) {
return sqrt((x[u]-x[v])*(x[u]-x[v]) + (y[u]-y[v])*(y[u]-y[v]));
}
pair<double, int> fa[N];
int vis[N], id[N];
double zhu_liu(int root = 1) {
double ans = 0;
while(true) {
for(int i=1; i<=n; i++) fa[i] = make_pair(inf, 0);
for(int i=1; i<=m; i++) {
int u = e[i].u, v = e[i].v;
fa[v] = min(fa[v], make_pair(e[i].w, u));
}
for(int i=1; i<=n; i++) if(i != root && !fa[i].sec) {
return -1;
} fa[root] = make_pair(0, 0);
memset(vis, 0, sizeof(vis));
memset(id, 0, sizeof(id));
int num = 0;
for(int i=1; i<=n; i++) if(i != root) {
ans += fa[i].fir;
int u = i; while(u != root && !vis[u]) vis[u] = i, u = fa[u].sec;
if(u != root && vis[u] == i) {
num++;
while(id[u] != num) id[u] = num, u = fa[u].sec;
}
}
if(!num) break;
for(int i=1; i<=n; i++) if(!id[i]) id[i] = ++num;
int cnt = 0;
for(int i=1; i<=m; i++) {
int u = e[i].u, v = e[i].v;
double tmp = fa[v].fir;
u = id[u];
v = id[v];
if(u == v) continue;
e[++cnt] = (edge) {u, v, e[i].w - tmp};
}
n = num;
m = cnt;
root = id[root];
}
return ans;
} int main() {
//ios::sync_with_stdio(false); cin.tie(); cout.tie();
while(cin >> n >> m) {
for(int i=1; i<=n; i++) scanf("%d %d", &x[i], &y[i]);
int cnt = 0;
for(int i=1; i<=m; i++) {
int u, v;
scanf("%d %d", &u, &v);
if(u == v) continue;
e[++cnt] = (edge) {u, v, dis(u, v)};
}
m = cnt;
double ans = zhu_liu();
if(ans == -1) puts("poor snoopy");
else printf("%.2f\n", ans);
}
}

POJ3436 Command Network [最小树形图]的更多相关文章

  1. POJ 3164 Command Network 最小树形图

    题目链接: 题目 Command Network Time Limit: 1000MS Memory Limit: 131072K 问题描述 After a long lasting war on w ...

  2. POJ3164 Command Network —— 最小树形图

    题目链接:https://vjudge.net/problem/POJ-3164 Command Network Time Limit: 1000MS   Memory Limit: 131072K ...

  3. POJ3164 Command Network(最小树形图)

    图论填个小坑.以前就一直在想,无向图有最小生成树,那么有向图是不是也有最小生成树呢,想不到还真的有,叫做最小树形图,网上的介绍有很多,感觉下面这个博客介绍的靠谱点: http://www.cnblog ...

  4. POJ 3164 Command Network 最小树形图模板

    最小树形图求的是有向图的最小生成树,跟无向图求最小生成树有很大的区别. 步骤大致如下: 1.求除了根节点以外每个节点的最小入边,记录前驱 2.判断除了根节点,是否每个节点都有入边,如果存在没有入边的点 ...

  5. POJ 3164 Command Network 最小树形图 朱刘算法

    =============== 分割线之下摘自Sasuke_SCUT的blog============= 最 小树形图,就是给有向带权图中指定一个特殊的点root,求一棵以root为根的有向生成树T, ...

  6. POJ - 3164-Command Network 最小树形图——朱刘算法

    POJ - 3164 题意: 一个有向图,存在从某个点为根的,可以到达所有点的一个最小生成树,则它就是最小树形图. 题目就是求这个最小的树形图. 参考资料:https://blog.csdn.net/ ...

  7. POJ 3164 Command Network ( 最小树形图 朱刘算法)

    题目链接 Description After a long lasting war on words, a war on arms finally breaks out between littlek ...

  8. POJ 3164——Command Network——————【最小树形图、固定根】

    Command Network Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 15080   Accepted: 4331 ...

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

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

随机推荐

  1. CTypes

    参考:http://docs.pythontab.com/interpy/c_extensions/ctypes/ Python中的ctypes模块可能是Python调用C方法中最简单的一种.ctyp ...

  2. ASP.NET Web API 2 OData v4教程

    程序数据库格式标准化的开源数据协议 为了增强各种网页应用程序之间的数据兼容性,微软公司启动了一项旨在推广网页程序数据库格式标准化的开源数据协议(OData)计划,于此同时,他们还发 布了一款适用于OD ...

  3. Bootstrap常用样板

    http://blog.csdn.net/Star_449/article/details/76098292 1.图片样式 1.1..img-responsive: 直接为图片添加该样式,可以实现响应 ...

  4. Emit 自动生成IL代码,注入代码

    Spring 框架中的注入代码,以及自动生成对接口的实现,则根据il代码注入 Emit学习(1)-Emit概览 一.Emit概述 Emit,可以称为发出或者产生.在Framework中,与Emit相关 ...

  5. python文本操作—读、写

    文本文件存储的数据有很多,我们需要把这些文本里的内容读出来,然后在浏览器上面显示. 1.读取整个文本文件 格式: with open(路径) as 变量: 变量.read() 关键字with作用:在不 ...

  6. django数据库迁移报错

    当输入C:\Users\太阳之泪\b2p\my_pro>python manage.py makemigrations shop 出现一下情况 然后输入C:\Users\太阳之泪\b2p\my_ ...

  7. 【转载】Centos7修改root密码

    参考: https://blog.csdn.net/wcy00q/article/details/70570043 知道root密码,需要修改密码 以root登录系统输入passwd命令默认修改roo ...

  8. 论文笔记:Mask R-CNN

    之前在一次组会上,师弟诉苦说他用 UNet 处理一个病灶分割的任务,但效果极差,我看了他的数据后发现,那些病灶区域比起整张图而言非常的小,而 UNet 采用的损失函数通常是逐像素的分类损失,如此一来, ...

  9. 7个提升Python程序性能的好习惯

    原文作者:爱coding,会编程的核电工程师. 个人博客地址:zhihu.com/people/zhong-yun-75-63 掌握一些技巧,可尽量提高Python程序性能,也可以避免不必要的资源浪费 ...

  10. powerdesigner添加mysql的字符集ENGINE和DEFAULT CHARACTER SET

    工具栏->database->edit current DBMS 然后,选中:MYSQL50::Script\Objects\Table\Options 在options末尾添加: ENG ...