hdu3938(最小生成树,推荐)
题意描述:简单的讲就是,给你一张无向图,求有多少条路径使得路径上的花费小于L,这里路径上的花费是这样规定的,a、b两点之间的多条路径中的最长的边最小值!
思路:这题目有多个询问,肯定要用离线输出。思路的话,我们只需要从小到达枚举边的长度,如果两个并查集没有连通,那么联通之后的路径条数就应该是(num[a]*num[b])........
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int father[10005],num[10005];
struct node
{
int v1,v2;
int dis;
}s[50005];
struct node1
{
int ans;
int sum;
int id;
}t[10005];
int cmp(const node a,const node b)
{
if(a.dis<b.dis)
return 1;
else
return 0;
}
int cmp1(const node1 a,const node1 b)
{
if(a.sum<b.sum)
return 1;
else
return 0;
}
int cmp2(const node1 a,const node1 b)
{
if(a.id<b.id)
return 1;
else
return 0;
}
int find(int x)
{
int root,i=x;
while(x!=father[x])
x=father[x];
root=x;
x=i;
while(x!=father[x])
{
i=father[x];
father[x]=root;
num[root]+=num[x];
num[x]=0;
x=i;
}
return root;
}
int liantong(int x,int y)
{
father[x]=y;
int k=num[y]*num[x];
num[y]+=num[x];
num[x]=0;
return k;
}
int main()
{
int n,m,q;
while(scanf("%d%d%d",&n,&m,&q)>0)
{
for(int i=0;i<=n;i++)
{
father[i]=i;
num[i]=1;
}
int maxn=0;
for(int i=0;i<m;i++)
{
scanf("%d%d%d",&s[i].v1,&s[i].v2,&s[i].dis);
maxn=s[i].dis;
}
sort(s,s+m,cmp);
//int q;
//scanf("%d",&q);
//q=
for(int i=0;i<q;i++)
{
scanf("%d",&t[i].sum);
t[i].id=i;
}
sort(t,t+q,cmp1);
int j=0;
for(int i=0;i<q;i++)
{
if(i==0)
t[i].ans=0;
else
t[i].ans=t[i-1].ans;
while(j<m&&t[i].sum>=s[j].dis)
{
int tmp=s[j].v1;
int tmp1=s[j].v2;
tmp=find(tmp);
tmp1=find(tmp1);
if(tmp!=tmp1)
{
t[i].ans+=liantong(tmp,tmp1);
}
j++;
}
}
sort(t,t+q,cmp2);
for(int i=0;i<q;i++)
printf("%d\n",t[i].ans);
}
return 0;
}
hdu3938(最小生成树,推荐)的更多相关文章
- POJ推荐50题
此文来自北京邮电大学ACM-ICPC集训队 此50题在本博客均有代码,可以在左侧的搜索框中搜索题号查看代码. 以下是原文: POJ推荐50题1.标记“难”和“稍难”的题目可以看看,思考一下,不做要求, ...
- 树的Prufer 编码和最小生成树计数
Prufer数列 Prufer数列是无根树的一种数列.在组合数学中,Prufer数列由有一个对于顶点标过号的树转化来的数列,点数为n的树转化来的Prufer数列长度为n-2.它可以通过简单的迭代方 ...
- ACM计算几何题目推荐
//第一期 计算几何题的特点与做题要领: 1.大部分不会很难,少部分题目思路很巧妙 2.做计算几何题目,模板很重要,模板必须高度可靠. 3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面 ...
- 最小生成树——Prim算法和Kruskal算法
洛谷P3366 最小生成树板子题 这篇博客介绍两个算法:Prim算法和Kruskal算法,两个算法各有优劣 一般来说当图比较稀疏的时候,Kruskal算法比较快 而当图很密集,Prim算法就大显身手了 ...
- 最小生成树(prime算法 & kruskal算法)和 最短路径算法(floyd算法 & dijkstra算法)
一.主要内容: 介绍图论中两大经典问题:最小生成树问题以及最短路径问题,以及给出解决每个问题的两种不同算法. 其中最小生成树问题可参考以下题目: 题目1012:畅通工程 http://ac.jobdu ...
- 最小生成树 & 洛谷P3366【模板】最小生成树 & 洛谷P2820 局域网
嗯... 理解生成树的概念: 在一幅图中将所有n个点连接起来的n-1条边所形成的树. 最小生成树: 边权之和最小的生成树. 最小瓶颈生成树: 对于带权图,最大权值最小的生成树. 如何操作? 1.Pri ...
- 最小生成树的kruskal、prim算法
kruskal算法和prim算法 都说 kruskal是加边法,prim是加点法 这篇解释也不错:这篇 1.kruskal算法 因为是加边法,所以这个方法比较合适稀疏图.要码这个需要先懂并查集.因为我 ...
- 最小生成树算法 prim kruskal两种算法实现 HDU-1863 畅通工程
最小生成树 通俗解释:一个连通图,可将这个连通图删减任意条边,仍然保持连通图的状态并且所有边权值加起来的总和使其达到最小.这就是最小生成树 可以参考下图,便于理解 原来的图: 最小生成树(蓝色线): ...
- POJ 2031 Building a Space Station【经典最小生成树】
链接: http://poj.org/problem?id=2031 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22013#probl ...
随机推荐
- 树莓派进阶之路 (024) - windows远程桌面连接树莓派通过xrdp服务(转)
本文转载:http://www.cnblogs.com/edgexie/p/6527992.html 在网上看到很多关于windows远程桌面连接树莓派的教程.我也按照教程试过了,遇到了几个坑.特意记 ...
- HSSFWorkbook 与 XSSFWorkbook
刚开始使用new HSSFWorkbook(new FileInputStream(excelFile))来读取Workbook,对Excel2003以前(包括2003)的版本没有问题,但读取Exce ...
- .NET压缩图片保存 .NET CORE WebApi Post跨域提交 C# Debug和release判断用法 tofixed方法 四舍五入 (function($){})(jQuery); 使用VUE+iView+.Net Core上传图片
.NET压缩图片保存 需求: 需要将用户后买的图片批量下载打包压缩,并且分不同的文件夹(因:购买了多个用户的图片情况) 文章中用到了一个第三方的类库,Nuget下载 SharpZipLib 目前用 ...
- 图形对象函数figure() 及 子图创建函数subplot()
1 图像对象创建函数figure 创建图形Creates a new figure, 图形名既可以作为显示在图形窗口标题栏中的文本,也是该对象的名称 也可以通过mp.figure()获取(或激活)已创 ...
- SmartUpload类实现上传和下载
实现文件的上传与下载,可以使用Java的I/O流的类来实现,也可以使用专业的上传.下载组件.这些组件提供了现成的类,程序员只需调用这些类中的方法即可实现文件的上传与下载.本章将向读者介绍如何应用jsp ...
- HDOJ 1281 棋盘游戏
拆点二分图匹配 棋盘游戏 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tot ...
- [转] spring的普通类中如何取session和request对像
在使用spring时,经常需要在普通类中获取session,request等对像.比如一些AOP拦截器类,在有使用struts2时,因为struts2有一个接口使用org.apache.struts2 ...
- jmeter响应信息unicode 编码转成中文
在jmeter 发送请求过程中,有时候后台返回的是unicode 代码,如: {"status":-1,"msg":"\u63d0\u4ea4\u65 ...
- Tcp超时修改
Linux 建立 TCP 连接的超时时间分析 tags: linux | network Linux 系统默认的建立 TCP 连接的超时时间为 127 秒,对于许多客户端来说,这个时间都太长了, 特别 ...
- [MeetCoder] Count Pairs
Count Pairs Description You are given n circles centered on Y-aixs. The ith circle’s center is at po ...