单测试点时限: 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. 一次线上GC故障解决过程记录

    排查了三四个小时,终于解决了这个GC问题,记录解决过程于此,希望对大家有所帮助.本文假定读者已具备基本的GC常识和JVM调优知识,关于JVM调优工具使用可以查看我在同一分类下的另一篇文章: http: ...

  2. 强化学习实战 | 表格型Q-Learning玩井字棋(一)

    在 强化学习实战 | 自定义Gym环境之井子棋 中,我们构建了一个井字棋环境,并进行了测试.接下来我们可以使用各种强化学习方法训练agent出棋,其中比较简单的是Q学习,Q即Q(S, a),是状态动作 ...

  3. 线性表A,B顺序存储合并

    线性表A,B顺序存储合并 有两张非递增有序的线性表A,B,采用顺序存储结构,两张表合并用c表存,要求C为非递减有序的,然后删除C表中值相同的多余元素.元素类型为整型 输入格式: 第一行输入输入表A的各 ...

  4. nuxt使用图片懒加载vue-lazyload

    对于nuxt使用第三方插件的方式大体都是都是一致的,就是在plugins文件夹中新增插件对应的js文件进行配置与操作,然后在nuxt.config.js文件的plugins配置项中引入新建的js文件就 ...

  5. A Child's History of England.37

    Many other noblemen repeating and supporting this when it was once uttered, Stephen and young Planta ...

  6. ORACLE 查询sql和存储性能思路

    1.确定session id 如果是存储过程,在程序开头设置客户端标识.并根据标识获取session id. DBMS_SESSION.set_identifier('XXX'); select * ...

  7. 隐藏状态栏后tableview自动上移20个像素的问题

    最近在开发过程中碰到一个很奇怪的问题,将状态栏隐藏掉之后,页面上的tableView会自动上移20个像素. 这是因为在iOS7.0之后,系统会自动调整scrollView的layout 和 conte ...

  8. 【Spring Framework】Spring入门教程(四)注册Bean到IOC容器

    注册Bean到IOC容器大致分为4种: ①.包扫描+组件注解(@Controller.@Service.@Repository.@Component) 针对类是我们自己编写的情况 ②.@Bean注解 ...

  9. .net 5 开发跨平台客户端程序

    介绍下.net 跨平台开发服务端程序的过程, .net 5发布已经有段时间了,.net 5根据微软官方的说法将来只有一个.net版本,也就是不在有core之分.从.net5开始整合.net frame ...

  10. Python模块和函数

    目录 一.基础 二.特殊函数 一.基础 #导入模块 import xxx #调用 xxx.dd() from xxx import xx  as dd #导入某个函数,as给函数加别名,调用xx() ...