bzoj 4349 最小树形图——朱刘算法
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4349.
学习博客:http://www.cnblogs.com/xzxl/p/7243466.html
关于这道题,图的边权不是 代价*次数 , 而就是一次的代价,因为只要考虑每个堡垒第一次以什么代价被打,之后都可以用最低代价打它。
注意 “不需要攻打” 的堡垒。注意重连边的时候把边的端点改成新的标号。
#include<cstdio>
#include<cstring>
#include<algorithm>
#define db double
using namespace std;
const int N=,M=; const db INF=1e6;
int n,b[N];db a[N],mn[N]; bool ok[N];
namespace DMST{
int xnt,pre[N],id[N],vis[N]; db in[N];
struct Ed{
int x,y; db w;
Ed(int x=,int y=,db w=):x(x),y(y),w(w) {}
}ed[M];
void add(int x,int y,db z){ ed[++xnt]=Ed(x,y,z); }
db solve(int V,int E)
{
db ret=;
while()
{
for(int i=;i<=V;i++)in[i]=INF,id[i]=vis[i]=;
for(int i=,u,v;i<=E;i++)
{
u=ed[i].x; v=ed[i].y;
if(in[v]>ed[i].w)in[v]=ed[i].w, pre[v]=u;
}
for(int i=;i<=V;i++)
{ if(in[i]==INF)return -; ret+=in[i];}
int cnt=;
for(int i=;i<=V;i++)
{
vis[i]=i; int cr=pre[i];
while(cr&&!vis[cr]) vis[cr]=i, cr=pre[cr];
if(vis[cr]==i)
{
id[cr]=++cnt; cr=pre[cr];
while(!id[cr])id[cr]=cnt, cr=pre[cr];
}
}
if(!cnt)return ret;
for(int i=;i<=V;i++)if(!id[i])id[i]=++cnt;
V=cnt; int tE=E; E=;
for(int i=,u,v;i<=tE;i++)
{
u=ed[i].x; v=ed[i].y;
if(id[u]==id[v])continue;
ed[++E].x=id[u]; ed[E].y=id[v];//id[]
ed[E].w=ed[i].w-in[v];
}
}
}
}
int main()
{
int tn;scanf("%d",&tn);
for(int i=;i<=tn;i++)
{
scanf("%lf%d",&a[i],&b[i]);
if(!b[i]){ ok[i]=;continue;}
DMST::id[i]=++n; DMST::add(,DMST::id[i],a[i]);
}
int m; db d; scanf("%d",&m);
for(int i=,u,v;i<=m;i++)
{
scanf("%d%d%lf",&u,&v,&d);
if(ok[u]||ok[v])continue;
DMST::add(DMST::id[u],DMST::id[v],d);
a[v]=min(a[v],d);
}
db ans=DMST::solve(n,DMST::xnt);
for(int i=;i<=tn;i++)//tn
if(!ok[i])ans+=(b[i]-)*a[i];
printf("%.2f\n",ans);
return ;
}
bzoj 4349 最小树形图——朱刘算法的更多相关文章
- 最小树形图——朱刘算法(Edmonds)
定义:一个有向图,存在从某个点为根的,可以到达所有点的一个最小生成树,则它就是最小树形图. 朱刘算法实现过程: [在选出入边集后(看步骤1),若有向图中不存在有向环,说明该图就是最小树形图] 1,选入 ...
- POJ 3164 Command Network ( 最小树形图 朱刘算法)
题目链接 Description After a long lasting war on words, a war on arms finally breaks out between littlek ...
- poj3164(最小树形图&朱刘算法模板)
题目链接:http://poj.org/problem?id=3164 题意:第一行为n, m,接下来n行为n个点的二维坐标, 再接下来m行每行输入两个数u, v,表点u到点v是单向可达的,求这个有向 ...
- POJ 3164 Command Network 最小树形图 朱刘算法
=============== 分割线之下摘自Sasuke_SCUT的blog============= 最 小树形图,就是给有向带权图中指定一个特殊的点root,求一棵以root为根的有向生成树T, ...
- 最小树形图--朱刘算法([JSOI2008]小店购物)
题面 luogu Sol 首先设一个 \(0\) 号点,向所有点连边,表示初始价值 显然这个图的一个 \(0\) 为根的最小有向生成树的边权和就是每个买一次的最小价值 再买就一定能优惠(包含 \(0\ ...
- 洛谷P4716 【模板】最小树形图(朱刘算法)
题意 题目链接 Sol 朱刘算法?感觉又是一种神仙贪心算法 大概就是每次贪心的用每个点边权最小的入边更新答案,如果不行的话就缩起来找其他的边 不详细说了,丢链接走人.. #include<bit ...
- POJ - 3164-Command Network 最小树形图——朱刘算法
POJ - 3164 题意: 一个有向图,存在从某个点为根的,可以到达所有点的一个最小生成树,则它就是最小树形图. 题目就是求这个最小的树形图. 参考资料:https://blog.csdn.net/ ...
- 【刷题】BZOJ 4349 最小树形图
Description 小C现在正要攻打科学馆腹地------计算机第三机房.而信息组的同学们已经建好了一座座堡垒,准备迎战.小C作为一种高度智慧的可怕生物,早已对同学们的信息了如指掌. 攻打每一个人 ...
- poj 3164 Command Network (朱刘算法)
题目链接: http://poj.org/problem?id=3164 题目大意: 有n个点(用坐标表示)各点编号分别为1—>n,m条单向路,问能否存在一个花费价值最小的网络,能使从1点到达任 ...
随机推荐
- MongoDB的安装及安装为windows服务
首先在网上找了一篇教程,于是按着做,下载了最新版的安装包,解压以后目录是这样的: 没有bin目录啊 原因:zip没有经过编译 于是下载安装包,安装包是msi 一直按照next提示就可以了,但是记得选择 ...
- python 爬虫数据存入csv格式方法
python 爬虫数据存入csv格式方法 命令存储方式:scrapy crawl ju -o ju.csv 第一种方法:with open("F:/book_top250.csv" ...
- VSFTP服务配置
FTP连接及传输模式控制连接:TCP 21 ,用于发送FTP命令信息数据连接:TCP 20 ,用于上传.下载数据数据连接的建立类型:主动模式.被动模式 主动模式:服务器主动发起数据连接·首先由客户端向 ...
- SpringBoot(2.0.4.RELEASE)+Elasticsearch(6.2.4)+Gradle简单整合
记录一下SpringBoot(2.0.4.RELEASE)+Elasticsearch(6.2.4)+Gradle整合的一个小例子. 1.在Gradle内加入相关jar包的依赖: compile('o ...
- threejs教程
http://www.haomou.net/2015/08/30/2015_threejs0/ http://www.johannes-raida.de/tutorials.htm https://w ...
- pycharm远程服务器进行调试
背景是这样的:我有一台远程的服务器,以及一台本地的电脑:现在我想用远程的服务器上的python编译器来运行代码,怎么办?通用的做法是ssh服务器,vim代码,之后python运行文件,但是如果遇到调试 ...
- python import 其他 package的模块
https://blog.csdn.net/luo123n/article/details/49849649 http://blog.habnab.it/blog/2013/07/21/python- ...
- Sping boot 之 @Value("${xxx}") 注解获取配置文件内容
1.注解方式读取 1-1.@PropertySource配置文件路径设置,在类上添加注解,如果在默认路径下可以不添加该注解. 需要用@PropertySource的有: 例如非application. ...
- select的width和input的width
select的width包括了border,而input不包括
- 云计算SPI(SaaS、PaaS、IaaS)
云计算SPI(SaaS.PaaS.IaaS) The other day, I arrived at the SAP LABS CHINA for interview with my pleasure ...