类似于1213取水

可以把空投当作第0个城市

最后将0~n的所有城市跑最小生成树

#include<iostream>
#include<algorithm>
using namespace std;
struct road{
int from,to,cost;
bool operator < (const road &a) const{
return cost<a.cost;
}
}ar[];
int gp[];
int find(int a){
return a==gp[a]?a:gp[a]=find(gp[a]);
}
void merge(int a,int b){
gp[find(b)]=find(a);
}
int main(){
ios::sync_with_stdio();cin.tie();
int T,i,n,m,k;
long long res;
cin>>T;
while(T--){
cin>>n>>m;
for(i=;i<n;i++){
ar[i*].from=i+;
ar[i*].to=;
cin>>ar[i*].cost;
ar[i*+].from=;
ar[i*+].to=i+;
ar[i*+].cost=ar[i*].cost;
}
for(i=n;i<n+m;i++){
cin>>ar[i*].from>>ar[i*].to>>ar[i*].cost;
ar[i*+].from=ar[i*].to;
ar[i*+].to=ar[i*].from;
ar[i*+].cost=ar[i*].cost;
}
sort(ar,ar+(m+n)*);
for(i=;i<=n;i++)
gp[i]=i;
for(k=res=i=;i<(m+n)*;i++){
if(k==n)
break;
if(find(ar[i].from)!=find(ar[i].to)){
merge(ar[i].from,ar[i].to);
res+=ar[i].cost;
k++;
}
}
cout<<res<<'\n';
} return ;
}

ZJNU 1528 - War--高级的更多相关文章

  1. ZJNU 1367 - Party--中高级

    寻找从i到X,再从X到i的最短路 可以在正向图中从X开始跑一遍最短路,每个点的距离dis1[i]当作从X回到点i的距离 再将图反向从X再跑一遍,每个点的距离dis2[i]当作从i到点X的距离 最后搜索 ...

  2. ZJNU 1269 - 灯塔——高级

    根据题目输入可以得到一个有向图 信号可以根据有向图的传递性传递,因此可以说是找到这个有向图的所有父亲即可 但又要考虑可能会出现环这类情况 所以跑一遍强连通分量模板,再根据分块后的图找到入度为0的块,把 ...

  3. ZJNU 1213 - 取水——高级

    某个村庄i可以打一口井取水花费费用Wi,也可以与有水的村庄连接取水 又因为不可能没有一个村庄不打井(即至少有一个村庄打井,其余村庄连向它) 实际上就可以理解为,将水井看作第N+1个村庄,需要有村庄与这 ...

  4. hdu 3047 Zjnu Stadium 并查集高级应用

    Zjnu Stadium Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot ...

  5. Java高级架构师(一)第03节:多模块多Web应用合并War包

    多模块.多Web应用合并war包 在日常的系统开发中,如果担心各个系统的资源同名覆盖,可以在总的War模块下放置一份最终的资源. 将版本号改成9.1.0.v20131115,ok 在Idea中的Mav ...

  6. ZJNU 1538 - YN!ngC的取子游戏--高级

    Nim博弈 因为移动到第0阶会消失 所以可以得到从最后一个人操作必定是把第1阶所有子全部移动到第0阶 递推可得,最后一个能把奇数阶的子移动到偶数阶上的人将会必胜 所以这个必胜条件就是奇数阶上的子全部为 ...

  7. ZJNU 1333 - 第二题 blocks--中高级

    因为放一个就需要判断一次,每一次跑一遍全图bfs显然是不现实的 又因为点只有三种,黑白无 所以可以用并查集优化 添加一个棋子就判断周围四个的组别情况 注意出现的情况与答案关系之间的判别 /* Writ ...

  8. ZJNU 1244/1245 - 森哥数——高级

    打表找规律吧…… 一定要记得每一步都得开long long 然后可以发现所有的森哥数每一位只可能是0,1,2,3 就可以想到最高O(3^9)的算法 枚举1e9之内的所有满足条件的数判断 枚举9位数,最 ...

  9. ZJNU 1223 - 素数距离——高级

    因为最大可以达到int极限 明显直接筛选不可能完成 所以从其因子入手 因为任何不是素数的数都有除了1与其自身之外的因子 因此,我们筛出2^(31/2)≍46350之内的所有素数,以其作为因子再将题目给 ...

随机推荐

  1. spring boot 开发环境搭建(Eclipse)

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  2. javaBean命名属性时的小注意点

    javabean属性命名的时,第一个和第二个字母最好不要是大写字母,不然使用eclipse自动生成getter和setter方法时,会出现奇怪的问题,导致struts2封装属性的封装不上. priva ...

  3. java类加载及new对象的过程

    /* SubClass sub = new SubClass(); 这句话到底做了什么事情呢? 1.javac编译.java源文件形成.class字节码文件; 2.new SubClass()对象时, ...

  4. jquery判断当前浏览器是否是IE

    if (window.ActiveXObject || "ActiveXObject" in window){ layer.msg("This page does not ...

  5. RectTransform详解

    乾坤那个大挪移   ----------------------------------------------------------------- 我是分割线 ------------------ ...

  6. MySQL数据类型使用总结,浮点使用注意事项

    1.对于精度要求较高的应用中,建议使用定点数来存储数值,以保证结果的准确性. 2.对于字符类型,要根据存储引擎进行相应的选择 3.对含有TEXT和BOLB字段的表,如果经常做删除和修改记录的操作要定时 ...

  7. Java 14 都要来了,为什么还有这么多人固守Java8?

    作者:刘欣 从Java 9开始,Java版本的发布就让人眼花缭乱了. 每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份, ...

  8. ubuntu16+caffe fast-rcnnCPU运行步骤

    //////////////////////////////////////////////////////////////////////////////////////////////////// ...

  9. python3+Opencv 搭建环境和基本操作

    一.必备前提: Python3.5及以上版本.pip.windows环境 二.搭建opencv 该部分可以创建隔绝的Python环境来引入,参照virtualenv的使用 在目标的cmd窗口,依次输入 ...

  10. 关于 sublime 使用技巧

    实行多位置编写  按住 alt 键 用鼠标点击想要编写的位置 实行正方形任意拉选操作  按住 alt 键  用鼠标拖动来进行勾选 继续转发别人的帖子 模块与包的导入 https://blog.csdn ...