BZOJ3158 千钧一发 <黑白染色+最小割>
BZOJ2152 聪聪可可 <点分治>
Problem
聪聪可可
TimeLimit:3Sec
MemoryLimit:259MB
Description
聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已经玩儿腻了这种低智商的游戏。他们的爸爸快被他们的争吵烦死了,所以他发明了一个新游戏:由爸爸在纸上画n个“点”,并用n−1条“边”把这n个“点”恰好连通(其实这就是一棵树)。并且每条“边”上都有一个数。接下来由聪聪和可可分别随即选一个点(当然他们选点时是看不到这棵树的),如果两个点之间所有边上数的和加起来恰好是3的倍数,则判聪聪赢,否则可可赢。聪聪非常爱思考问题,在每次游戏后都会仔细研究这棵树,希望知道对于这张图自己的获胜概率是多少。现请你帮忙求出这个值以验证聪聪的答案是否正确。
Input
输入的第1行包含1个正整数n。后面n−1行,每行3个整数x、y、w,表示x号点和y号点之间有一条边,上面的数是w。
Output
以即约分数形式输出这个概率(即“a/b”的形式,其中a和b必须互质。如果概率为1,输出“1/1”)。
BZOJ2599【IOI2011】Race <点分治>
BZOJ4237【JOI2013】稻草人 < CDQ分治+单调栈 >
Problem
【JOI2013】稻草人
TimeLimit:40Sec
MemoryLimit:256MB
Description
JOI村有一片荒地,上面竖着N个稻草人,村民们每年多次在稻草人们的周围举行祭典。
有一次,JOI村的村长听到了稻草人们的启示,计划在荒地中开垦一片田地。和启示中的一样,田地需要满足以下条件:
- 田地的形状是边平行于坐标轴的长方形
- 左下角和右上角各有一个稻草人
- 田地的内部(不包括边界)没有稻草人
给出每个稻草人的坐标,请你求出有多少遵从启示的田地的个数。
Input
第一行一个正整数N,代表稻草人的个数。
接下来N行,第i行(1≤i≤N)包含2个由空格分隔的整数Xi和Yi,表示第i个稻草人的坐标。
Output
输出一行一个正整数,代表遵从启示的田地的个数。
BZOJ4151【AMPPZ2014】The Cave <树相关>
Problem
【AMPPZ2014】The Cave
Time Limit: 5Sec
Memory Limit: 256MB
SpecialJudge
Description
给定一棵有n个节点的树,相邻两点之间的距离为1。
请找到一个点x,使其满足所有m条限制 a b d,其中第i条限制为distx,a+distx,b≤d
Input
第一行包含一个正整数t(1≤t≤1000),表示数据组数。
对于每组数据,第一行包含两个正整数n,m(2≤n,m≤3×105),表示点数、限制数。
接下来n−1行,每行两个正整数x,y(1≤x,y≤n),表示树上的一条边。
接下来m行,每行三个正整数a[i],b[i],d[i](1≤a[i],b[i]≤n, 1≤d[i]≤6×105),描述一条限制。
输入数据保证所有n之和不超过 3×105,所有m之和也不超过 3×105。
Output
输出t行。第i行输出第i组数据的答案,如果无解输出NIE,否则输出TAK,
然后输出x,如有多组解,输出任意一组。
BZOJ1999【NOIp2007】Core树网的核 <树相关>
Problem
【NOIp2007】Core树网的核
Time Limit: 10Sec
Memory Limit: 64MB
Description
设T=(V,E,W) 是一个无圈且连通的无向图(也称为无根树),每条边带有正整数的权,我们称T为树网(treenetwork),其中V,E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点。 路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a,b)表示以a,b为端点的路径的长度,它是该路径上各边长度之和。我们称d(a,b)为a,b两结点间的距离。 一点v到一条路径P的距离为该点与P上的最近的结点的距离: d(v,P)=minu在P上d(v,u)。 树网的直径:树网中最长的路径称为树网的直径。对于给定的树网T,直径不一定是唯一的,但可以证明:各直径的中点(不一定恰好是某个结点,可能在某条边的内部)是唯一的,我们称该点为树网的中心。 偏心距ECC(F):树网T中距路径F最远的结点到路径F的距离,即 。 任务:对于给定的树网T=(V,E,W)和非负整数s,求一个路径F,它是某直径上的一段路径(该路径两端均为树网中的结点),其长度不超过s(可以等于s),使偏心距ECC(F)最小。我们称这个路径为树网T=(V,E,W)的核(Core)。必要时,F可以退化为某个结点。一般来说,在上述定义下,核不一定只有一个,但最小偏心距是唯一的。 下面的图给出了树网的一个实例。图中,A−B与A−C是两条直径,长度均为20。点W是树网的中心,EF边的长度为5。如果指定s=11,则树网的核为路径DEFG(也可以取为路径DEF),偏心距为8。如果指定s=0(或s=1、s=2),则树网的核为结点F,偏心距为12。
Input
包含n行: 第1行,两个正整数n和s,中间用一个空格隔开。其中n为树网结点的个数,s为树网的核的长度的上界。设结点编号依次为1,2,⋯,n。 从第2行到第n行,每行给出3个用空格隔开的正整数,依次表示每一条边的两个端点编号和长度。例如,“2 4 7”表示连接结点2与4的边的长度为7。 所给的数据都是正确的,不必检验。
Output
只有一个非负整数,为指定意义下的最小偏心距。
BZOJ1468 Tree <点分治>
BZOJ4144【AMPPZ2014】Petrol < 最短路+MST >
Problem
【AMPPZ2014】Petrol
TimeLimit:10Sec
MemoryLimit:256MB
Description
给定一个n个点、m条边的带权无向图,其中有s个点是加油站。
每辆车都有一个油量上限b,即每次行走距离不能超过b,但在加油站可以补满。
q次询问,每次给出x,y,b,表示出发点是x,终点是y,油量上限为b,且保证x点和y点都是加油站,请回答能否从x走到y。
Input
第一行包含三个正整数n,s,m(2≤s≤n≤2×105,1≤m≤2×105),表示点数、加油站数和边数。
第二行包含s个互不相同的正整数c[1],c[2],...c[s](1≤c[i]≤n),表示每个加油站。
接下来m行,每行三个正整数u[i],v[i],d[i](1≤u[i],v[i]≤n,u[i]=v[i],1≤d[i]≤105),表示u[i]和v[i]之间有一条长度为d[i]的双向边。
接下来一行包含一个正整数q(1≤q≤2×105),表示询问数。
接下来q行,每行包含三个正整数x[i],y[i],b[i](1≤x[i],y[i]≤n,x[i]=y[i],1≤b[i]≤2×109),表示一个询问。
Output
输出q行。第i行输出第i个询问的答案,如果可行,则输出TAK,否则输出NIE。