hdu 3948 Portal (kusral+离线)
Portal
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 931 Accepted Submission(s): 466
7 2 1
6 8 3
4 5 8
5 8 2
2 8 9
6 4 5
2 1 5
8 10 5
7 3 7
7 8 8
10
6
1
5
9
1
8
2
7
6
13
1
13
36
1
36
2
16
13
#define LOCAL
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstdlib>
using namespace std;
const int maxn=;
/*for point*/
struct node{
int a,b,c;
bool operator <(const node &bn)const {
return c<bn.c;
}
}sac[maxn*];
/*for query*/
struct query{
int id,val;
bool operator <(const query &bn)const {
return val<bn.val;
}
}qq[maxn]; int father[maxn],rank[maxn];
int key[maxn]; void init(int n){
for(int i=;i<=n;i++){
father[i]=i;
rank[i]=;
}
} int fin(int x){
while(x!=father[x])
x=father[x];
return x;
} int unin(int x,int y)
{
x=fin(x);
y=fin(y);
int ans=;
if(x!=y){
ans=rank[x]*rank[y];
if(rank[x]<rank[y]){
rank[y]+=rank[x];
father[x]=y;
}
else{
rank[x]+=rank[y];
father[y]=x;
}
}
return ans;
} int main()
{
#ifdef LOCAL
freopen("test.in","r",stdin);
freopen("test1.out","w",stdout);
#endif
int n,m,q;
while(scanf("%d%d%d",&n,&m,&q)!=EOF)
{
init(n);
for(int i=;i<m;i++){
scanf("%d%d%d",&sac[i].a,&sac[i].b,&sac[i].c);
} for(int i=;i<q;i++){
scanf("%d",&qq[i].val);
qq[i].id=i;
}
sort(sac,sac+m);
sort(qq,qq+q);
int i,j,res=;
for(j=,i=;i<q;i++){
while(j<m&&sac[j].c<=qq[i].val){
res+=unin(sac[j].a,sac[j].b);
++j;
}
key[qq[i].id]=res;
}
for(i=;i<q;i++){
printf("%d\n",key[i]);
}
}
// system("comp"); return ;
}
hdu 3948 Portal (kusral+离线)的更多相关文章
- HDU 3938 Portal (离线并查集,此题思路很强!!!,得到所谓的距离很巧妙)
Portal Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Subm ...
- hdu 3948 后缀数组
The Number of Palindromes Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 262144/262144 K (J ...
- hdu Portal(离线,并查集)
题意:在一张无向图上,已知边权,做q组询问,问小于L的点对共有几组.点对间的距离取=min(两点之间每一条通路上的最大值). 分析:这里取最大值的最小值,常用到二分.而这里利用离线算法,先对边从小到大 ...
- hdu 3938 Portal(并查集+离线+kruskal)2011 Multi-University Training Contest 10
搜了题解才把题搞明白.明白之后发现其实题意很清晰,解题思路也很清晰,只是题目表述的很不清晰…… 大意如下—— 给你一个无向图,图中任意两点的距离是两点间所有路径上的某一条边,这条边需要满足两个条件:1 ...
- hdu 3938 Portal (prim+离线)
Problem - 3938 题意是要求出给定权值下,满足要求的点对的数目.所谓的要求是,给出两点,之间会有很多路径,这个点对的最小距离是众多路径中,最短的一条路径的长度,路径长度是路径上最长边的长度 ...
- HDU - 3948 后缀数组+Manacher
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3948 题意:给定一个字符串,求字符串本质不同的回文子串个数. 思路:主要参考该篇解题报告 先按照man ...
- HDU 4031 Attack(离线+线段树)(The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4031 Problem Description Today is the 10th Annual of ...
- HDU 5700 区间交 离线线段树
区间交 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5700 Description 小A有一个含有n个非负整数的数列与m个区间.每个区间可以表示为 ...
- HDU 5875 Function 优先队列+离线
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5875 Function Time Limit: 7000/3500 MS (Java/Others) ...
随机推荐
- Win 64 register usage
http://www.mouseos.com/win64/registers.html Seems UEFI using rcx, rdx, r8, r9, r10, r11, r12 to stor ...
- Give My Text Back
Give My Text Back 标签(空格分隔): 算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 To prepare for the English exa ...
- application 网站计数器
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- 迪米特法则(LoD),即最少知识原则
解释: 如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用.如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用. 重点: 在类的结构上,每个类都应当尽量降低成员 ...
- SQL疑难杂症【3】链接服务器提示"无法启动分布式事物"
今天接到用户反馈,应用系统出现异常,无法正常使用,于是用Profiler跟踪了一下语句,发现执行的存储过程中调用了链接服务器,做了一些跨服务器操作数据的动作,刚好就是这个链接服务器出错了,错误截图如下 ...
- Codeforces Round #260 (Div. 2)AB
http://codeforces.com/contest/456/problem/A A. Laptops time limit per test 1 second memory limit per ...
- bzoj 2957: 楼房重建 线段树
2957: 楼房重建 Time Limit: 10 Sec Memory Limit: 256 MB[Submit][Status][Discuss] Description 小A的楼房外有一大片施 ...
- Python基础学习笔记(七)常用元组内置函数
参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-tuples.html 3. http://www.liaoxue ...
- 关于deferred
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- git学习笔记07-冲突了怎么办-那就解决冲突呗
比如一个人自己创建了分支feature1进行修改提交之后提交,另一个人在master上修改然后提交. master分支和feature1分支各自都分别有新的提交,变成了这样: 这种情况下,Git无法执 ...