题意 给了 一颗 有 100000 个节点的树, 他们构成的边有 n*(n-1)/2 种。 每条边有一个长度,长度排序后 取前K条的 和, 枚举每条长度为1 的边 放进队列,然后通过成都为1 的表去 形成长度为2的边,然后不断地接下去, 枚举到 K个就可以了 K <1000000

#include <iostream>
#include <algorithm>
#include <string.h>
#include <cstdio>
#include <queue>
#include <vector>
using namespace std;
const int maxn=;
typedef long long ll;
struct point{
int L,R;
int Rper;
ll len;
point(int a=,int c=, int d=,ll e=){
L=a; R=c; Rper=d; len=e;
}
};
vector<int> F[];
queue<point> Q;
int main()
{
int cas=;
scanf("%d",&cas);
for(int cc=; cc<=cas; ++cc){
int n,k;
scanf("%d%d",&n,&k);
for(int i=; i<=n; ++i) F[i].clear();
while(!Q.empty())Q.pop();
int rea=,frt=;
point t1,t2;
for(int i=; i<n; ++i){
int a,b;
scanf("%d%d",&a,&b);
F[a].push_back(b);
F[b].push_back(a);
Q.push(point(a,b,a,));
rea++;
Q.push(point(b,a,b,));
rea++;
}
ll ans=;
for(frt=; frt<*k; ++frt){
t1= Q.front();
Q.pop();
ans=ans+t1.len;
if(rea>=*k) {continue;}
int sz = F[t1.R].size();
for(int i=; i<sz; ++i){
int to = F[t1.R ][i];
if(to!=t1.Rper&&rea<*k){
t2.L=t1.L;
t2.len=t1.len+;
t2.R=to;
t2.Rper=t1.R;
rea++;
Q.push(t2);
}
}
}
printf("%I64d\n",ans/); }
return ;
}

hdu5102 枚举每条边的长度的更多相关文章

  1. mothur summary.seqs 统计fasta文件中每条序列的长度

    在介绍summary.seqs的用法之前,我们首先需要搞清楚两个概念: 1)ambiguous bases 中文叫做模糊碱基,对于DNA序列来说,只有ATCG 4种碱基,在IUPAC定义的碱基标准中, ...

  2. poj 3662 Telephone Lines(好题!!!二分搜索+dijkstra)

    Description Farmer John wants to set up a telephone line at his farm. Unfortunately, the phone compa ...

  3. bzoj 2119 股市的预测——枚举长度的关键点+后缀数组

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2119 就是找差分序列上中间差 m 的相等的两段. 考虑枚举这样一段的长度 L .可以把序列分 ...

  4. UVALive 6885 Flowery Trails 最短路枚举

    题目连接: http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=129723 题意: 给你一个n点m图的边 1到n有多条最短路 ...

  5. HDU 5024 Wang Xifeng's Little Plot(枚举)

    题意:求一个图中只有一个90°拐点的路的最大长度. 分析:枚举每一个为'.'的点,求出以该点为拐点的八种路中的最大长度,再比较所有点,得出最大长度即可. 如上样例,这样是个90°的角... 注意:最多 ...

  6. POJ 1135 Domino Effect (spfa + 枚举)- from lanshui_Yang

    Description Did you know that you can use domino bones for other things besides playing Dominoes? Ta ...

  7. 《Effective Java》学习笔记 —— 枚举、注解与方法

    Java的枚举.注解与方法... 第30条 用枚举代替int常量 第31条 用实例域代替序数 可以考虑定义一个final int 代替枚举中的 ordinal() 方法. 第32条 用EnumSet代 ...

  8. topcoder srm 738 div1 FindThePerfectTriangle(枚举)

    Problem Statement      You are given the ints perimeter and area. Your task is to find a triangle wi ...

  9. POJ 3135 Polygons on the Grid(枚举+凸包)

    题目大意是让你用这n条边放在网格上构成凸包,并且边的两端点必须在网格上. 那么比较容易想到的就是枚举可能情况,因为这样的勾股数组成情况不多,因此可以直接枚举所有连出去的边反映在坐标轴上的所有情况,最后 ...

随机推荐

  1. weblogic11g重置控制密码

    Reset the AdminServer Password in WebLogic 11g and 12c If you forget the AdminServer password for yo ...

  2. poj_3274 哈希

    哈希 Hash 哈希是一种将复杂数据转换为线性数据从而可以进行随机访问的查找算法. 哈希经常用于对复杂数据(如结构体.对象等)的查找,在使用的时候,需要定义一个Hash函数,将需要查找的复杂对象转化为 ...

  3. Linux学习——定义命令行函数(cd .. -> ..)

    在使用shell的时候,每天要面对各种命令行,比如ls , cd .. 等 抱着简单,可依赖的思想.有些可以简化的操作可以要通过在 ~/.bashrc 中进行添加: 1. cd .. -> .. ...

  4. LeetCode - Delete Duplicate Emails

    Discription:Write a SQL query to delete all duplicate email entries in a table named Person, keeping ...

  5. 微信小游戏5.2.2 在子项目中使用EUI制作排行榜报错 wx.getFileSystemManager not function

    本来想子项目(开放数据域)想使用EUI来制作排行榜. 原5.1.11的时候是ok的.在5.2.2中,使用assetsmananger而不是res,则会报错wx.getFileSystemManager ...

  6. 实用的IOS应用程序框架

    实用的IOS应用程序框架 目录 概述 概述

  7. 不同linux下两网卡绑定方法

    记得原来在做性能测试时,为了提高网络吞吐率.必须将两个网卡绑定一起工作.绑定方法如下: 一.CentOS 配置   1.编辑虚拟网络接口配置文件,指定网卡IP: # vi /etc/sysconfig ...

  8. linux awk时间计算脚本

    在linux如果计划时间是个麻烦事, 用awk脚本如下 BEGIN {FS=":";OFS=":"} {total_seconds=total_seconds+ ...

  9. #cat ora11g_ora_.trc

    Trace file /u02/app/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_31212.trc Oracle Database 11g Enterpri ...

  10. Redis集群管理(二)

    1.进入集群客户端 任意选一个redis节点,进入redis 所在目录 cd /redis 所在目录/src/ ./redis-cli -h 本地节点的ip -p redis的端口号 -a 密码 [r ...