单测试点时限: 1.0 秒

内存限制: 512 MB

有很多城市之间已经建立了路径,但是有些城市之间没有路径联通。为了联通所有的城市,现在需要添加一些路径,为了节约,需要满足添加总路径是最短的。

输入

第一行 333 个整数 n,m,sn, m, sn,m,s, 分别表示城市的数量、已经存在的路的数量、可修的路的数量。

之后的 mmm 行,每行 333 个整数 x,y,dx, y, dx,y,d,表示点 xxx 到点 yyy 有一条长度为 ddd 的已经存在的路径。

之后的 sss 行,每行 333 个整数 x,y,dx, y, dx,y,d,表示点 xxx 到点 yyy 有一条长度为 ddd 的可修的路径。

0&lt;n,m,s,d≤1050&lt;n,m,s,d≤10^50<n,m,s,d≤105 。

输出

输出一个整数表示需要添加的最短的路径长度。

若果无论如何也无法使得所有的城市联通,输出 Concubines can't do it.

样例

input

5 3 2
1 2 1
1 3 2
1 4 3
2 3 4
2 5 5

output

5

Solve

最小生成树裸题,前mmm条边的边权变成000,后sss条边的边权不变,进行MST

Code

#include<bits/stdc++.h>
#define ll long long
#define ms(a,b) memset(a,b,sizeof(a))
const int maxn=1e6+10;
const int maxm=1e3+10;
const int inf=(1<<30);
const ll INF=(1LL*1<<60);
using namespace std;
int f[maxn];
struct Edge
{
int u,v,w;
}edge[maxn];
int tol;
void add(int u,int v,int w)
{
edge[tol].u=u;
edge[tol].v=v;
edge[tol++].w=w;
}
bool cmp(Edge a,Edge b)
{
return a.w<b.w;
}
int Find(int x)
{
if(f[x]==x)
return x;
else
return f[x]=Find(f[x]);
}
ll kru(int n)
{
for(int i=0;i<=n;i++)
f[i]=i;
sort(edge,edge+tol,cmp);
int cnt=0;
ll ans=0;
for(int i=0;i<tol;i++)
{
int u=edge[i].u;
int v=edge[i].v;
int w=edge[i].w;
int tOne=Find(u);
int tTwo=Find(v);
if(tOne!=tTwo)
{
ans+=1LL*w;
f[tOne]=tTwo;
cnt++;
}
}
if(cnt<n-1)
return -1;
else
return ans;
}
int main()
{
ios::sync_with_stdio(false);cin.tie(0);
int n,m,s;
cin>>n>>m>>s;
int res=0;
for(int i=0;i<m;i++)
{
int x,y,d;
cin>>x>>y>>d;
res=max(max(x,y),res);
add(x,y,0);
add(y,x,0);
}
int a1=kru(m);
for(int i=0;i<s;i++)
{
int x,y,d;
cin>>x>>y>>d;
add(x,y,d);
add(y,x,d);
}
if(kru(n)==-1)
cout<<"Concubines can't do it."<<endl;
else
cout<<1LL*kru(n)<<endl;
return 0;
}

第九届河南理工大学算法程序设计大赛 正式赛L:最优规划(最小生成树)的更多相关文章

  1. 『NYIST』第九届河南省ACM竞赛队伍选拔赛[正式赛二]-最小内积(第八届北京师范大学程序设计竞赛决赛)

    H. 最小内积                                                                   Time Limit: 1000ms Memory ...

  2. 『NYIST』第九届河南省ACM竞赛队伍选拔赛[正式赛二]- Nearly Lucky Number(Codeforces Beta Round #84 (Div. 2 Only)A. Nearly)

    A. Nearly Lucky Number time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  3. 『NYIST』第九届河南省ACM竞赛队伍选拔赛[正式赛二]--Codeforces -35D. Animals

    D. Animals time limit per test 2 seconds memory limit per test 64 megabytes input input.txt output o ...

  4. “浪潮杯”第九届山东省ACM大学生程序设计竞赛重现赛 C-Cities

    题目描述:There are n cities in Byteland, and the ith city has a value ai. The cost of building a bidirec ...

  5. Contest - 第10届“新秀杯”ACM程序设计大赛网络资格赛 赛后信息(晋级名单·正式版)

    2014_acm_fresh_0057 刘畅 20131620 2014_acm_fresh_0099 汪哲 20132185 2014_acm_fresh_0086 陈顺 2014111776 20 ...

  6. 第十六届浙江大学宁波理工学院程序设计大赛 D 雷顿女士与分队hard version(dp)

    题意 链接:https://ac.nowcoder.com/acm/contest/2995/D来源:牛客网 卡特莉接到来自某程序设计竞赛集训队的邀请,来为他们进行分队规划. 现在集训队共有n名选手, ...

  7. Contest - 第10届“新秀杯”ACM程序设计大赛现场热身赛 赛后信息(题解)

      Problem Id Title   Problem A A+B   Problem B 统计字数   Problem C 生日计算   Problem D 冬瓜的寒假之旅 Problem A(略 ...

  8. Contest - 第10届“新秀杯”ACM程序设计大赛网络预选赛 赛后信息(晋级名单)

    经过比赛结果以及综合评定,以下42名同学暂定出现.下为出现名单(打*为 友情参赛 或为 有重大作弊嫌疑的选手). 在即日24时之前,若有异议,仍可申诉,申诉邮箱:desgard_duan@foxmai ...

  9. 谁才是最强战舰!-From 南京理工大学第八届程序设计大赛(校外镜像),博弈~~

    谁才是最强战舰! Time Limit: 1000MS Memory Limit: 65536KB Description 依阿华来到镇守府的第一件事情,就是找大和solo!然而这并不是什么好消息,说 ...

随机推荐

  1. C/C++ Qt 数据库与TreeView组件绑定

    在上一篇博文<C/C++ Qt 数据库QSql增删改查组件应用>介绍了Qt中如何使用SQL操作函数,并实现了对数据库的增删改查等基本功能,从本篇开始将实现数据库与View组件的绑定,通过数 ...

  2. 安全相关,xss

    XSS XSS,即 Cross Site Script,中译是跨站脚本攻击:其原本缩写是 CSS,但为了和层叠样式表(Cascading Style Sheet)有所区分,因而在安全领域叫做 XSS. ...

  3. [web安全] 利用pearcmd.php从LFI到getshell

    有一段时间没写blog了,主要是事多,加上学的有些迷茫,所以内耗比较大.害,沉下心好好学吧. 漏洞利用背景: 允许文件包含,但session等各种文件包含都已经被过滤了.ctf题中可以关注regist ...

  4. 格式化代码(Eclipse 格式化代码块快捷键:Ctrl+Shift+F)

    1.格式化java代码 : ①Ctrl+Shift+F 但是我们会遇到按 Ctrl+Shift+F不起作用的时候?       Ctrl+Shift+F 在搜狗拼音里是简繁替换.一旦安装搜狗拼音这个快 ...

  5. JPA和事务管理

    JPA和事务管理 很重要的一点是JPA本身并不提供任何类型的声明式事务管理.如果在依赖注入容器之外使用JPA,事务处理必须由开发人员编程实现. 123456789101112UserTransacti ...

  6. java-阿里邮件推送服务开发 -- 发送邮箱验证码

    参考文档: 如何在 DNS 服务器上配置域名:https://help.aliyun.com/knowledge_detail/39397.html?spm=5176.2020520150.102.d ...

  7. Linux:expr、let、for、while、until、shift、if、case、break、continue、函数、select

    1.expr计算整数变量值 格式 :expr arg 例子:计算(2+3)×4的值 1.分步计算,即先计算2+3,再对其和乘4 s=`expr 2 + 3` expr $s \* 4 2.一步完成计算 ...

  8. 【Linux】【Basis】Kernel

    Linux Kernel:               CentOS启动流程:POST --> Bootloader(BIOS, MBR) --> Kernel(initrd) --> ...

  9. ES在项目中的测试

    1.application.yml server: port: ${port:40100}spring: application: name: xc-search-servicexuecheng: e ...

  10. 过滤敏感词工具类SensitiveFilter

    网上过滤敏感词工具类有的存在挺多bug,这是我自己改用的过滤敏感词工具类,目前来说没啥bug,如果有bug欢迎在评论指出 使用前缀树 Trie 实现的过滤敏感词,树节点用静态内部类表示了,都写在一个 ...