题目链接:###

传送门

题意:###

给定一颗N个节点的树,定义两点距离为他们之间路径中边权最小值。

Q次询问K,V,询问到V距离>=K的点有多少(不含V)

呃呃呃呃考试的时候直奔了T3,结果公式推挂了(。。)最后5min回来搞T1,看出了正解然而手速跟不上……

分析:###

把所有的询问先离线下来存在一个结构体里并记录顺序(以便输出),然后分别把边和询问按w和k从大到小排序

用一个循环扫询问,每次询问把大于等于ask[i].k的边加进并查集并更新总和,最后按顺序排回来输出

具体的操作都在代码里

代码:###

#include<bits/stdc++.h>
#define N (200000+5)
using namespace std;
inline int read(){
int cnt=0,f=1;char c;
c=getchar();
while(!isdigit(c)){
if(c=='-')f=-f;
c=getchar();
}
while(isdigit(c)){
cnt=cnt*10+c-'0';
c=getchar();
}
return cnt*f;
}
int n,q,id[N],p=1,fa[N];
struct node{int x;int y;int w;} edge[N];
struct node2{int num;int v;int k;int res;} ask[N];
bool cmp(node a,node b){
return a.w>b.w;
}
bool cmp2(node2 a,node2 b){
return a.k>b.k;
} bool cmp3(node2 a,node2 b){
return a.num<b.num;
} int get_father(int x){
if(fa[x]==x)return x;
return fa[x]=get_father(fa[x]);
} void merge(int a,int b){
int x=get_father(a);
int y=get_father(b);
if(x==y) return;
else fa[x]=y;
id[y]+=id[x];
} int main(){
n=read();q=read();
for(register int i=1;i<=n;i++) fa[i]=i,id[i]=1; for(register int i=1;i<n;i++) {
edge[i].x=read();
edge[i].y=read();
edge[i].w=read();
} for(register int i=1;i<=q;i++) {
ask[i].k=read();
ask[i].v=read();
ask[i].num=i;
} sort(edge+1,edge+n,cmp);
sort(ask+1,ask+q+1,cmp2); for(register int i=1;i<=q;i++){
while(edge[p].w>=ask[i].k&&p<n){
merge(edge[p].x,edge[p].y);
p++;
}
int t=get_father(ask[i].v);
ask[i].res=id[t]-1;
} sort(ask+1,ask+q+1,cmp3); for(register int i=1;i<=q;i++) printf("%d\n",ask[i].res);
return 0;
}

[洛谷P4185] [USACO18JAN]MooTube的更多相关文章

  1. Bzoj5188/洛谷P4185 [Usaco2018 Jan]MooTube(并查集)

    题面 Bzoj 洛谷 题解 最暴力的方法是直接判两个点之间的路径最小值是否\(\geq k\),用\(Dijkstra\)可以做到该算法最快效率,但是空间复杂度始终是\(O(n^2)\)的,会\(ML ...

  2. [洛谷P4183][USACO18JAN]Cow at Large P

    题目链接 Bzoj崩了之后在洛谷偶然找到的点分好题! 在暴力的角度来说,如果我们$O(n)$枚举根节点,有没有办法在$O(n)$的时间内找到答案呢? 此时如果用树形$dp$的想法,发现是可做的,因为可 ...

  3. 洛谷 P4183 - [USACO18JAN]Cow at Large P(点分治)

    洛谷题面传送门 点分治 hot tea. 首先考虑什么样的点能够对以 \(u\) 为根的答案产生 \(1\) 的贡献.我们考虑以 \(u\) 为根对整棵树进行一遍 DFS.那么对于一个点 \(v\), ...

  4. 洛谷 P4181 [USACO18JAN]Rental Service

    P4181 [USACO18JAN]Rental Service 题意翻译 farmer john有N(1≤N≤100,000)头牛,他想赚跟多的钱,所以他准备买牛奶和出租牛.有M(1≤M≤100,0 ...

  5. 2018.10.25 洛谷P4187 [USACO18JAN]Stamp Painting(计数dp)

    传送门 其实本来想做组合数学的2333. 谁知道是道dpdpdp. 唉只能顺手做了 还是用真难则反的思想. 这题我们倒着考虑,只需要求出不合法方案数就行了. 这个显然是随便dpdpdp的. f[i]f ...

  6. 并查集 || [USACO18JAN]MooTube || BZOJ 5188 || Luogu P4185

    题面:[USACO18JAN]MooTube 题解: 对边和询问都排序,然后每次把符合当前要求的边都扔并查集里,对于每个询问判断当前并查集里节点数即可. 我很无聊地给并查集加了按秩排序,还开了O2,加 ...

  7. 【LG4185】[USACO18JAN]MooTube

    [LG4185][USACO18JAN]MooTube 题面 洛谷 题解 先将所有操作和询问离线 然后按照边权从大到小将操作和询问排序 利用\(two\;pointers\),每次扫到一个询问,将边权 ...

  8. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  9. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

随机推荐

  1. linux PC手把手搭建minigui3.0开发环境

    1.下载网址http://www.minigui.com/en/download/ 2.下载资料: 3.安装过程: (1)安装 libminigui-gpl-3.0.12.tar.gz tar zxv ...

  2. python 1: 解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题

    问题: 我在ubuntu14.04下用python中的matplotlib模块内的pyplot输出图片不能显示中文,怎么解决呢? 解决: 1.指定默认编码为UTF-8: 在python代码开头加入如下 ...

  3. navcat for mysql 连接远程数据库 教程

    1.首先进入数据库: mysql -uroot -p 2.然后打开数据库设置远程连接权限: mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'ID ...

  4. Do not throw System.Exception, System.SystemException, System.NullReferenceException, or System.IndexOutOfRangeException intentionally from your own source code

    sonarqube的扫描结果提示 https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/exceptions/creatin ...

  5. 前端如何展示商品属性:SKU多维属性状态判断算法的应用-Vue 实现

    由于公司开发了一个电商项目,涉及到前台商品属性的展示,所以百度上找了一下!找到了 周琪力写的一个算法例子,因为作者只有jQuery 实现demo, 自己仿照 demo 实现了一个 vue 的! 周琪力 ...

  6. 根据用户时区显示当地时间 javascript+php

    在跨时区应用中会用到下面代码,这是以前写的一段代码. 服务器保存相关时间配置,保存形式为GMT时间,客户端需要根据客户所在时区做相应显示,以符合客户习惯. ​1. [代码][JavaScript]代码 ...

  7. html5--6-19 CSS3中的文字与字体

    html5--6-19 CSS3中的文字与字体 学习要点 掌握文字与字体的设置 颜色值查询方法: 百度查询,很多网站有提供 下载相关手册等需要时查表 运用绘图工具中的拾色器 CSS中常用的字体属性设置 ...

  8. NOIP2008 传纸条(DP及滚动数组优化)

    传送门 这道题有好多好多种做法呀……先说一下最暴力的,O(n^4的做法) 我们相当于要找两条从左上到右下的路,使路上的数字和最大.所以其实路径从哪里开始走并不重要,我们就直接假设全部是从左上出发的好啦 ...

  9. [yii]Fetch data from database and create listbox in yii

    <?php $records = User::model()->findAll(); $list = CHtml::listData($records, 'id', 'username') ...

  10. Ruby 全局变量,实例变量,类变量

    class Computer $manufacturer = "Mango Computer, Inc." # “$" 是全局变量关键字 @@num_of_instanc ...