[Awson原创]网络(network)
Description
Awson是某国际学校信竞组的一只菜鸡。学校为了使教育信息化,打算在学校内新建机房,并且为机房联网。但吝啬的学校又不想花费过多的开销,于是将规划 网络路线的任务交给了信竞组的Awson。由于他是一只名副其实的菜鸡,他并不知道怎么规划,甚至不知道怎么打开编程软件,于是他又把这个任务交给了你。
学校打算新建N(1<=N<=5)个机房,编号为1,2,…,N,这些机房错落在学校各个角落。为了联网,学校可以直接在机房内安装适配器, 安装需要一定费用且每个机房费用不同。当然也可以借助其他的一些教室,从已安装适配器的地方接网线。这些教室不一定是机房,有M(1<=M& lt;=1000)个非机房的教室,编号为N+1,N+2,…,N+M。这些教室也可以安装适配器,从而接网线到附近的机房。现给出每处安装适配器的费用 以及教室间接网线的费用。求使所有机房连上网的费用最小值(非机房的教室没必要全联网)。
Input
第1行:三个整数N,M,Q(Q的含义下面有解释)
第2行:共N+M个整数,第i个数表示在编号为i的地方安装适配器费用Ai
第3~Q+2行:每行三个整数U,V,C,表示编号为U,V间连接网线的费用为C
Output
共1行,1个整数,表示使所有机房连上网的费用最小值。
Sample Input1
3 1 3 1 2 3 4 1 4 2 2 4 2 3 4 4
Sample Output1
Sample Input2
4 1 45 5 5 5 11 5 12 5 13 5 14 5 1
Sample Output2
Hint
样例解释:
对于样例1:直接在每个机房安装适配器,开销最小,为1+2+3=6。
对于样例2:在唯一一个非机房的教室安装适配器,并从此处接网线到各个机房,开销最小,为1+1+1+1+1=5。
数据规模:
20%的数据有N=1;
另20%的数据有N=2;
另20%的数据有N=3;
100%的数据有1<=N<=5,1<=M<=1000,M<=Q<=5000,1<=A,C<=10000。
题解
斯坦纳树裸题,当模板存着。
建立超级源点连接每个节点,边权为装适配器的费用。
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<ctime>
#include<cstdio>
#include<string>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
;
;
int n,m,q;
struct tt
{
int to,cost,next;
}edge[P*];
],top;
int u,v,c;
void Add(int u,int v,int c);
][N+];
];
queue<int>Q;
void SPFA();
<<][N+];
void DP();
int main()
{
scanf("%d%d%d",&n,&m,&q);
;i<=n+m;i++)
{
scanf("%d",&c);
Add(,i,c);
Add(i,,c);
}
;i<=q;i++)
{
scanf("%d%d%d",&u,&v,&c);
Add(u,v,c);
Add(v,u,c);
}
SPFA();
DP();
printf(<<(n+))-][]);
;
}
void Add(int u,int v,int c)
{
edge[++top].to=v;
edge[top].cost=c;
edge[top].next=path[u];
path[u]=top;
}
void SPFA()
{
memset(dist,/,sizeof(dist));
;s<=n+m;s++)
{
dist[s][s]=;
Q.push(s);
vis[s]=;
while (!Q.empty())
{
for (int i=path[Q.front()];i;i=edge[i].next)
{
if (dist[s][edge[i].to]>dist[s][Q.front()]+edge[i].cost)
{
dist[s][edge[i].to]=dist[s][Q.front()]+edge[i].cost;
if (!vis[edge[i].to])
{
Q.push(edge[i].to);
vis[edge[i].to]=;
}
}
}
vis[Q.front()]=;
Q.pop();
}
}
}
void DP()
{
memset(f,/,sizeof(f));
;i<=n;i++)
;j<=n+m;j++)
f[<<i][j]=dist[i][j];
;i<=n+m;i++) f[][i]=;
;sta<(<<(n+));sta++) ))
{
;i<=n+m;i++)
)&sta)
if (f[sta][i]>f[sub][i]+f[sta^sub][i])
f[sta][i]=f[sub][i]+f[sta^sub][i];
;i<=n+m;i++)
;j<=n+m;j++)
if (f[sta][i]>f[sta][j]+dist[j][i])
f[sta][i]=f[sta][j]+dist[j][i];
}
}
[Awson原创]网络(network)的更多相关文章
- Docker 外部访问容器Pp、数据管理volume、网络network 介绍
Docker 外部访问容器Pp.数据管理volume.网络network 介绍 外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来 指定端口映射. ...
- Unity3d 网络编程(一)(Unity3d内建网络Network介绍)
首先个人说说题外话,Unity3d使用的网络库核心是用C++实现的一款商业网络游戏引擎库. RakNet.所以对于移动设备来说,用Unity3d来写server是全然能够的,而且内建网络库的各项功能封 ...
- 【csp模拟赛1】铁路网络 (network.cpp)
[题目描述] 在暑假来临之际,小 Z 的地理老师布置了一个暑假作业,让同学们暑假期间 了解一下 C 国的铁路发展史.小 Z 在多番查证资料后发现,C 国在铁路发展初期, 铁路网络有着一个严密规整的结构 ...
- [Awson原创]修水渠(canal)
Description Awson是某国际学校信竞组的一只菜鸡.他们班主任F老师喜欢带他们去爬爬唷喽山.登顶后,Awson有了个奇怪的发现. 山腰上有N(1<=N<=100)个村庄,这些村 ...
- [Awson原创]洪水(flood)
Description Awson是某国际学校信竞组的一只菜鸡.今年,该市发生了千年难遇的洪水.被监禁在学校的Awson不甘怠堕,想将自己投入到公益服务事业中去.这天,他偷了H老师的小电驴,偷偷地溜出 ...
- 关于Chrome谷歌浏览器开发者工具网络Network中返回无数据的问题
1.如图所示,对于有些js文件,响应中无返回数据,Failed to load response data,当然本来是应该有数据,你用火狐浏览器看,就是有的,或者直接在浏览器地址栏里输入url,也可以 ...
- Ubuntu网络network eth0配置 | ubuntu network configuration
本文首发于个人博客https://kezunlin.me/post/5076bc45/,欢迎阅读! ubuntu network configuration Guide network proxy S ...
- Uva 网络(Network,Seoul 2007,LA 3902)
#include<iostream> #include<cstring> #include<vector> using namespace std; +; int ...
- [ZJOI2012][bzoj 2816] 网络 network [LCT]
题目: http://www.lydsy.com/JudgeOnline/problem.php?id=2816 思路: 第一个条件看完暂时还没什么想法 看完第二个,发现每一个颜色都是一个森林 进而想 ...
随机推荐
- 使用.NET开发AutoCAD——C#/AutoCAD 2018/ObjectArx/二次开发入门(二)
1.开发环境配置: (1)安装AutoCAD2018: (2)安装VS2015: (3)安装ObjectARX 2018类库: (4)安装ObjectARX 2018 .NET开发向导(ObjectA ...
- Redux----Regular的Redux实现整理
Regular的Redux实现整理 什么问题? 组件的树形结构决定了数据的流向,导致的数据传递黑洞 怎么解决? 所有组件都通过中介者传递共享数据 方案: 中介者: (function create ...
- 网络1711-1712班 c 语言评分总表一览
学号 姓名 作业地址 PTA实验作业5分 PTA排名2分 阅读代码2分 总结1分 代码规范扣分-2--0 总分 是否推荐博客 1 **莹 http://www.cnblogs.com/wwwwxy12 ...
- 201621123043《java程序设计》第五周学习总结
1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 接口. Comparable接口 .Comparator接口.compareTo. 1.2 尝试使用思维导图将这些关键词组织起来 ...
- SaaS的那些事儿
前两年... 大一大二期间,不知道软件架构.云服务器.数据库为何物,偶尔听过却从未用过.天天学的写的东西都是一些命令行代码,所幸在学完<数据结构>和<算法导论>后能够独立实 ...
- VMware安装时Error 1324. The path My Documents contains a invalid character的原因和解决方法
终于找到了自己想要的答案,顶顶,吼吼~ 我今天安装VMware Workstation时,总是提示我Error 1324. The path My Documents contains a inval ...
- java 1.7新特性
try( ... ){ ... } catch(xxx e){ ... } java1.7特性,叫做try-with-resource,实现了AutoCloseable接口的实例可以放在try(... ...
- TFTP通信原理
TFTP的通信流程 TFTP共定义了五种类型的包格式,格式的区分由包数据前两个字节的Opcode字段区分,分别是: · l 读文件请求包:Read request,简写为RRQ,对应Opcode字段值 ...
- maven多环境部署
1.首先在maven的pom.xml文件中添加profiles标签,然后分别添加3个不同环境的profile, 本例中添加了dev.test.product三个环境,这个可以根据自己的需要添加和减少. ...
- Python内置函数(54)——callable
英文文档: callable(object) Return True if the object argument appears callable, False if not. If this re ...