E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
IOI2011
P4149 [
IOI2011
]Race (dsu on tree处理路径问题)
tp链接对于dis(u,v)==k这样的路径问题,我们可以借用LCA将其转化为dis(1,u)+dis(1,v)-2*dis(1,lca)==k问题就成了,满足上述式子的情况下,求出:dep(u)+d(v)-2*dep(lca)的最小值我们可以枚举LCA来求解。枚举LCA就联想到可以枚举每颗子树,根节点作为LCA,于是问题转化成了子树查询。每颗子树的O(N)暴力解法:维护一个map,map[x]表
_kikyou-
·
2022-09-14 02:32
启发式合并
算法
自动驾驶
深度学习
BZOJ-2599: [
IOI2011
]Race(树-点分治+SBT)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2599裸的点分治的题,看到k这么小其实还有其他方法,我偷懒直接就SBTO(nlog^2n)水过了。代码:#include#include#includeusingnamespacestd;#defineAddEdge(s,t,d)Add(s,t,d),Add(t,s,d)#defineMAXN2
AmadeusChan
·
2021-05-03 11:09
浅谈树分治
不考虑路径修改【练习题】【POJ1741】Tree【
IOI2011
】Race【SPOJ1825】免费旅行考虑路径修改【练习题】边分治【练习题】【SPOJ1825】免费旅行【ZJOI2007】Hide捉迷藏
weixin_33814685
·
2020-08-13 21:12
点分治题单(来自XZY)
点分治题单(来自XZY)静态点分治[x]洛谷P3806[模板]点分治1[x]洛谷P4178Tree[x]洛谷P2634[国家集训队]聪聪可可[x]洛谷P4149[
IOI2011
]Race[][Luogu2664
eternal风度
·
2020-08-13 17:19
点分治和点分树
文章目录吐槽题目[
IOI2011
]Racecf716E.DigitTreecf293E.CloseVerticesbzoj3730:震波cf757G.CanBashSavetheDay?
啊宸
·
2020-08-13 10:50
数据结构
洛谷 P4149 [
IOI2011
]Race 点分治+dp
洛谷P4149[
IOI2011
]Race求一棵树上路径长度刚好等于k的两点间的最小边数.如果不存在输出-1.点分治不一定要容斥!!!!重要的事情要说三遍!
Fuko_Ibuki
·
2020-08-10 19:04
点分治
dp
2599: [
IOI2011
]Race (点分治)
#include#include#defineinf1000000000usingnamespacestd;inlineintread(){intx=0,f=1;charch=getchar();while(ch'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&chhttp://www.zhihu.com/people/sylknqhyw/asks
ndsffx501ccy
·
2020-07-14 15:46
图论
洛谷 P4149 [
IOI2011
]Race-树分治(点分治,不容斥版)+读入挂-树上求一条路径,权值和等于 K,且边的数量最小
P4149[
IOI2011
]Race题目描述给一棵树,每条边有权。求一条简单路径,权值和等于KK,且边的数量最小。输入格式第一行包含两个整数n,Kn,K。
ZERO-
·
2019-10-16 20:00
BZOJ 2599: [
IOI2011
]Race (点分治)
题目描述给一棵树,每条边有权。求一条简单路径,权值和等于$K$,且边的数量最小。输入输出格式输入格式:第一行:两个整数$n,k$。第二至$n$行:每行三个整数,表示一条无向边的两端和权值(注意点的编号从$n$开始)。输出格式:一个整数,表示最小边数量。如果不存在这样的路径,输出-1−1。输入输出样例输入样例#1:复制43011122134输出样例#1:复制2说明$n\le200000,K\le10
bztMinamoto
·
2018-08-16 15:00
12.1 省选训练总结
题目点分治完成情况题目出处TreePOJ1741权限题RaceBZOJ2599[
IOI2011
]AC聪聪可可BZOJ2152ACDTreeHDU4812Amaz1ngPrimeCDOJ1562采药人的路径
Demon_Rieman
·
2017-12-03 19:40
总结
省选
BZOJ2599——[
IOI2011
]Race
0、题意:给一棵树,每条边有权.求一条路径,权值和等于K,且边的数量最小.1、分析:水题一道,一波树分治就好我们可以发现这个题的K是比较小的,才100w,那么我们可以树分治一下,在遍历每一棵子树的时候我们知道要统计两个不同子树之间的权值,如果我们全遍历然后再getans,我们就会发现某个子树自己会和自己进行统计了一下,这样不太好,所有我们每遍历一个子树我们就把这个子树中从x所有长度为k的路径记录上
qzh_1430586275
·
2016-05-23 08:00
bzoj
race
树分治
IOI2011
2599
bzoj2599【
IOI2011
】Race
2599:[
IOI2011
]RaceTimeLimit: 70Sec MemoryLimit: 128MBSubmit: 2499 Solved: 737[Submit][Status][Discuss
AaronGZK
·
2016-05-13 00:00
bzoj
树的点分治
【BZOJ2599】[
IOI2011
]Race【点分治】
【题目链接】点分治。考虑经过点x的路径,对于x,用类似TreeDP的方法,记录no[d],表示路径长度为d时经过边最少的点的编号。对于已经走过的子树,更新no。对于当前子树,遍历到一个点v,用depth[no[k-dis[v]]]+depth[v]更新答案。注意给no清零时,用dfs姿势清零,这样做是O(n)的。如果直接用for或者memset,这样做是O(k)的,会TLE。/*Telekinet
BraketBN
·
2016-05-09 16:00
[Contest]
IOI2011
day1 题目汇总
跟着ZZY神犇刷ioi题garden不会做,只会做倍增69分以后再填坑#include #include #include usingnamespacestd; inlinecharnc() { staticcharbuf[100000],*p1=buf,*p2=buf; if(p1==p2){p2=(p1=buf)+fread(buf,1,100000,stdin);if(p1==p2)ret
u014609452
·
2016-04-16 14:00
[SPFA] BZOJ 2622 [2012国家集训队测试]深入虎穴 & BZOJ 2617 [
Ioi2011
]crocodile
题解:http://blog.csdn.net/wzq_QwQ/article/details/47997617其实总体东西就是个SPFA,不过这里面我们需要做一些改动。这只老虎是DP老虎,他每次会占据你的最优方案。所以使得你只能用次优方案来更新最优方案以及次优方案。这就是SPFA的路子。但是这个路子并不够。让我们考虑一个点只有一个儿子的时候。他可能会扫一圈后第一次让他的儿子更新一次答案。这时候是
u014609452
·
2016-04-13 10:00
【bzoj2599】[
IOI2011
]Race 点分治
点分治1、求树的重心2、计算以当前重心为根的子树的答案3、去掉以当前重心儿子为根的子树的答案4、枚举每个儿子,分治考虑计算过程如何实现我们不妨记一个ans数组,ans[i]表示使用i条边权值为k的有多少对每次实现2的时候,权值设为+1每次实现3的时候,权值设为-1把子树内所有的dis排序,计算有多少对权值和为k的,两个指针扫一遍就可以了。#include #include #include #in
u012288458
·
2016-03-18 09:00
2599: [
IOI2011
]Race|树的点分治
数据范围:n≤200000,K≤1000000(题意描述中怎么没有。。然后就是分治,找经过根的路径开数组存下距离为x时的最小边数cnt[x]不断更新答案点的编号从零开始!!!!(sb不好好看题WA了那么多发还好意思说QAQ#include #include #include #include #include #include #include #include #include #include
ws_yzy
·
2016-03-13 15:00
树的点分治
BZOJ2599: [
IOI2011
]Race
点分我是用map存的可能多了个log但是跑得过去233333#include #include #include #include #include #include usingnamespacestd; charc; inlinevoidread(int&a) {a=0;doc=getchar();while(c'9');while(c='0')a=(aCache,Cach; structC
liutian429073576
·
2016-03-13 07:00
【点分治】BZOJ 2599:[
IOI2011
]Race
BZOJ2599:[
IOI2011
]RaceDescription给一棵树,每条边有权.求一条路径,权值和等于K,且边的数量最小.Input第一行两个整数n,k第二..n行每行三个整数表示一条无向边的两端和权值
puck_just_me
·
2016-02-03 08:33
点分治
BZOJ 2600: [
Ioi2011
]ricehub|暴力|中位数
答案显然在一个区间里从左到右枚举右端点,更新左端点直到cost #include #include #include #include #include #include #include #include #include #defineT111111 #definelllonglong usingnamespacestd; llsc() { lli=0;charc=getchar(); whi
ws_yzy
·
2016-01-10 19:00
暴力
2600: [
Ioi2011
]ricehub 前缀和乱搞
读入别把B读成int类型。。。其他的用前缀和搞一下==#include #definelllonglong usingnamespacestd; intn,R,l,ans,a[100005]; llsum[100005]; llb; inlinellread() { lla=0,f=1;charc=getchar(); while(c'9'){if(c=='-')f=-1;c=getchar();
Phenix_2015
·
2016-01-10 18:00
2599: [
IOI2011
]Race 点分治
IOI的题目QAQ。。。可以用t[i]表示当前距离root的距离为i的最小边数。不断更新每一颗子树。然后慢慢分治……#include #include #include #include #defineN200005 #defineinf1000000007 usingnamespacestd; intn,k,cnt,sum,root,ans; intt[N*5],head[N],size[N],
Phenix_2015
·
2016-01-07 19:00
BZOJ 2599 [
IOI2011
]Race【Tree,点分治】
给出N(1 <= N <= 200000)个结点的树,求长度等于K(1 <= K <= 1000000)的路径的最小边数。 点分治,这道题目和POJ 2114很接近,2114是求是否存在长度为K的边,但是那个K比较大。但是这道题目的K比之小了10倍。 1. 用V[i]表示到当前树根root的
·
2015-11-13 04:05
tree
BZOJ2599: [
IOI2011
]Race
裸的点分治 自从前两天狂敲了一个广搜点分治之后 敲个点分治如鱼得水啊 总觉得自己的写法会被奇怪数据卡到O(n2) 幸好IOI数据比较仁慈… 调试小结: 1. now、po不分 2. dis、deep不分 P.S. IOI的数据格式…不想讲了 1 /*************************************************************
·
2015-11-08 16:18
RAC
BZOJ 2600
IOI2011
ricehub 中位数
题目大意:给定一条道路上的n个稻田,要求建一个粮仓,并且选定一些稻田进行运输,这些稻田到粮仓的距离之和不能超过B,求最多能选择多少个稻田维护一个队列,头指针从前到后扫一遍如果发现尾指针到头指针这段稻田的中位数上建一个粮仓时距离之和超过了B,就调整尾指针对距离维护一个前缀和每次取中位数之后可以O(1)计算距离和#include #include #include #include #defineM1
PoPoQQQ
·
2015-01-22 08:00
中位数
bzoj
IOI2011
BZOJ2600
【BZOJ2600】【
IOI2011
】ricehub 二分答案
转载请注明出处【V字弦割】谢谢:http://blog.csdn.net/vmurder/article/details/42968083话说只删除网址却留下了这两句话的是什么心态233题意:见题目。题解:二分答案,然后对于一个ans,它显然是取了连续的一段。然后这个连续的一段显然一定是取中位数那个稻田作为粮仓。然后显然可以区间快速转移。然后显然这是一道水题,显然他需要开longlong。显然如果
Vmurder
·
2015-01-21 14:00
二分答案
IOI2011
BZOJ2600
ricehub
POJ 2114 Boatherds 树的分治
多组数据思路:和
IOI2011
的Race一样,比那个简单。读入太恶心了,我是上网上抄的别人的主函数。
jiangyuze831
·
2014-10-12 10:00
poj
树的分治
树的重心
POJ2114
BZOJ 2599
IOI2011
Race 树的点分治
题目大意:给出N(1 #include #include #include #defineM200200 usingnamespacestd; structabcd{ intto,f,next; boolban; }table[Mstack[M];inttop; voidFind_Centre_Of_Gravity(intx,intsize,int&cg) { inti; boolflag=1;
PoPoQQQ
·
2014-10-11 19:00
bzoj
树的点分治
BZOJ2599
IOI2011
【BZOJ】【P2599】【
IOI2011
】【Race】【题解】【点分治】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2599我不知道我的点分治是怎么写的……50s+倒数第一==、毕竟还是过了233那就每次挑点分治计算经过这个点的ans维护一个点到根的和和距离枚举子树中的点,计算它与其他子树中sum[i]+sum[j]=k且dep最小set搞搞好像是nlog^2n??然后莫名T成翔Code:#include #
u012732945
·
2014-10-10 21:00
bzoj
bzoj 2600 [
Ioi2011
] ricehub 题解
【原题】2600:[
Ioi2011
]ricehubTimeLimit: 10Sec MemoryLimit: 128MBSubmit: 298 Solved: 159[Submit][Status]
u013724185
·
2014-04-22 22:00
题解
数学
单调队列
bzoj
BZOJ 2599 [
IOI2011
]Race【Tree,点分治】
给出N(1 #include #include #include #include usingnamespacestd; #defineN200010 #defineinf0x3f3f3f3f structnode{ intv,l; node(){} node(int_v,int_l):v(_v),l(_l){}; }; vectorg[N]; intn,K,cur,root,size,ans;
yang_7_46
·
2013-08-16 17:00
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他