Lightoj1059【最小生成树】
题意:
使得所有的位置都能通向一个机场,问最小花费。
思路:
最小生成树。
本来还想标记一下没有出现过的点,其实那个数组已经解决了。==。
PS:注意路比建造机场还贵?直接造机场得了?
if there are several answers with minimal cost, choose the one that maximizes the number of airports.
而且相等也是造机场~
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
bool vis[N];
int pre[N],n,m,t;
struct Node{
int x,y,w;
}q[N];
bool cmp(Node a,Node b)
{
return a.w<b.w;
} int Find(int x)
{
int r=x;
while(pre[r]!=r)
r=pre[r];
int i=x,j;
while(pre[i]!=r)
{
j=pre[i];
pre[i]=r;
i=j;
}
return r;
} int main()
{
int T,cas=1;
scanf("%d",&T);
while(T--)
{
scanf("%d%d%d",&n,&m,&t);
for(int i=1;i<=n;i++)
{
pre[i]=i;
vis[i]=false;
}
for(int i=0;i<m;++i)
scanf("%d%d%d",&q[i].x,&q[i].y,&q[i].w);
sort(q,q+m,cmp);
int ans=0,cnt=0;
for(int i=0;i<m&&q[i].w<t;i++)
{
int x=Find(q[i].x);
int y=Find(q[i].y);
vis[q[i].x]=vis[q[i].y]=true;
if(x!=y)
{
pre[x]=y;
ans+=q[i].w;
}
}
for(int i=1;i<=n;i++)
if(pre[i]==i)
{
ans+=t;
cnt++;
}
printf("Case %d: %d %d\n",cas++,ans,cnt);
}
return 0;
} /* 5 3 10
1 2 1
3 4 1
4 5 11
Case 1: 32 3 */
Lightoj1059【最小生成树】的更多相关文章
- 最小生成树(Kruskal算法-边集数组)
以此图为例: package com.datastruct; import java.util.Scanner; public class TestKruskal { private static c ...
- 最小生成树计数 bzoj 1016
最小生成树计数 (1s 128M) award [问题描述] 现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树中至少有一 ...
- poj 1251 Jungle Roads (最小生成树)
poj 1251 Jungle Roads (最小生成树) Link: http://poj.org/problem?id=1251 Jungle Roads Time Limit: 1000 ...
- 【BZOJ 1016】【JSOI 2008】最小生成树计数
http://www.lydsy.com/JudgeOnline/problem.php?id=1016 统计每一个边权在最小生成树中使用的次数,这个次数在任何一个最小生成树中都是固定的(归纳证明). ...
- 最小生成树---Prim算法和Kruskal算法
Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树.意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (gra ...
- Delaunay剖分与平面欧几里得距离最小生成树
这个东西代码我是对着Trinkle的写的,所以就不放代码了.. Delaunay剖分的定义: 一个三角剖分是Delaunay的当且仅当其中的每个三角形的外接圆内部(不包括边界)都没有点. 它的存在性是 ...
- 最小生成树(prim&kruskal)
最近都是图,为了防止几次记不住,先把自己理解的写下来,有问题继续改.先把算法过程记下来: prime算法: 原始的加权连通图——————D被选作起点,选与之相连的权值 ...
- 最小生成树 prime poj1258
题意:给你一个矩阵M[i][j]表示i到j的距离 求最小生成树 思路:裸最小生成树 prime就可以了 最小生成树专题 AC代码: #include "iostream" #inc ...
- 最小生成树 prime + 队列优化
存图方式 最小生成树prime+队列优化 优化后时间复杂度是O(m*lgm) m为边数 优化后简直神速,应该说对于绝大多数的题目来说都够用了 具体有多快呢 请参照这篇博客:堆排序 Heapsort / ...
随机推荐
- php中$t=date()函数参数意义及时间更改
php中date()函数用的最多的是:date('Y-m-d H:i:s', time()); 这里面的参数意义分别是:Y - 年,四位数字; 如: "2016":m - 月份, ...
- ExtJS教程(5)---Ext.data.Model之高级应用
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/jaune161/article/details/37391399 1.Model的数据验证 这里借助 ...
- docker 网络模式研究了许久,其实我们需要的是docker run -p 80:80命令
我们只是希望能够从外部访问到docker而已,并不需要去折腾该死的网络模式,桥接,host等等. -p: 端口映射,格式为:主机(宿主)端口:容器端口 sudo docker run -t -i - ...
- 使用阿里云maven镜像加速jar包下载
编辑 MAVEN_HOME/conf 文件夹下的 settings.xml,找到 <mirrors> 节点,把下面内容添加在其子节点内: <mirror> <id> ...
- 基于node开发的web应用,负载均衡的简单实践
集群(cluster)是一组相互独立的.通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理.一个客户与集群相互作用时,集群像是一个独立的服务器. 负载均衡(Load Balance ...
- 51nod 1022 石子归并 V2 —— DP四边形不等式优化
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1022 1022 石子归并 V2 基准时间限制:1 秒 空间限 ...
- UVA11077 Find the Permutations —— 置换、第一类斯特林数
题目链接:https://vjudge.net/problem/UVA-11077 题意: 问n的全排列中多有少个至少需要交换k次才能变成{1,2,3……n}. 题解: 1.根据过程的互逆性,可直接求 ...
- 【css学习整理】css基础(样式,语法,选择器)
CSS是什么? cascading 层叠样式表 sheet 样式文件 style 外观个性化 CSS语法? 声明方法: 选择器(属性: 值; 属性: 值) 选择器: 通过名称制定对哪些标签进行样式设置 ...
- c++迷宫小游戏
c++迷宫小游戏 一.总结 一句话总结: 显示:根据map数组输出图像 走动:修改map数组的值,每走一步重新刷新一下图像就好 1.如果走函数用z(),出现输入s会向下走多步的情况,原因是什么? 向下 ...
- rand()与srand()
1.不用srand()的话 两次运行程序产生的随机数序列相同 2.用srand() 两次运行程序产生的随机数则不同 示例程序: #include<iostream> #include< ...