BZOJ3425 : Poi2013 Polarization】的更多相关文章

最小值肯定是把树看作二分图,此时答案为$n-1$. 最大值一定是选取重心为根,任意一个子树要么全部指向根,要么全部背离根,这样可以制造最大的星型图. 统计出每个子树的大小后做01背包,如果小于$\sqrt{n}$,那么二进制拆分,否则这种子树不超过$\sqrt{n}$个,直接DP即可. 用bitset优化转移,时间复杂度$O(\frac{n\sqrt{n}}{32})$. #include<cstdio> #include<bitset> #include<algorithm…
题目描述 Everyone knew it would only be a matter of time. So what? Faced for years on, a peril becomes the every-day reality. It loses its meaning... Today the letter of the Bitotian char Bittard to the Byteotian king Byteasar was released to the public.…
[BZOJ3425]Poi2013 Polarization Description 给定一棵树,可以对每条边定向成一个有向图,这张有向图的可达点对数为树上有路径从u到达v的点对(u,v)个数.求最小可达点对数和最大可达点对数 n<=250000 Sample Input 4 1 2 1 3 1 4 Sample Output 3 5 题解:想了一晚上,怎么想怎么是个搭建双塔,结果看题解发现还真tm是搭建双塔. 本题的结论有点神,不过很好猜,证明见Claris博客. 第一问的答案一定是n-1,因…
BZOJ 洛谷 最小可到达点对数自然是把一条路径上的边不断反向,也就是黑白染色后都由黑点指向白点.这样答案就是\(n-1\). 最大可到达点对数,容易想到找一个点\(a\),然后将其子树分为两部分\(x,y\),\(x\)子树所有边全指向\(a\),\(a\)与\(y\)子树之间的边全指向\(y\).这样答案就是\(sz[x]\times sz[y]\),要让\(sz[x],sz[y]\)尽量相等.找重心就好了. 然后DP,求划分重心两部分子树大小分别为\(x\)和\(n-1-x\)是否可行.…
POI2013题解 只做了BZ上有的\(13\)道题. 就这样还扔了两道神仙构造和一道计算几何题.所以只剩下十道题了. [BZOJ3414][Poi2013]Inspector 肯定是先二分答案,然后每个人的出现区间至少要包含于他自己记录的所有时间点.如果某个人没有记录过那他的出现区间任意. 从左往右扫描,维护以下几个东西: \(t\):目前还有多少人的区间不确定. \(s\):当前要求选多少人.(这个是由记录者决定的) \(cl\):有多少人的区间可以向左扩展. \(cr\):有多少人的区间可…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
[POI2013]Łuk triumfalny 题目大意: 一棵\(n(n\le3\times10^5)\)个结点的树,一开始\(1\)号结点为黑色.\(A\)与\(B\)进行游戏,每次\(B\)能选择不超过\(k\)个结点染成黑色,然后\(A\)从当前点出发走到一个相邻的结点.若\(A\)从\(1\)号结点出发,则\(k\)最小取多少能保证\(A\)每次走到的点都是黑点? 思路: 二分答案\(k\)后使用树形DP判断是否可行. 从叶子往根考虑,\(f_i\)表示将\(i\)的子树全部染黑需要从…
[POI2013]Polaryzacja 题目大意: 给定一棵\(n(n\le250000)\)个点的树,可以对每条边定向成一个有向图,这张有向图的可达点对数为树上有路径从\(u\)到达\(v\)的点对\((u,v)\)个数.求最小可达点对数和最大可达点对数. 思路: 显然最小可达点对数是\(n-1\).一种构造就是根结点全是入边,与根结点相邻的点全是出边--以此类推.最后相邻的点对会被统计一次,其余的均不会被统计. 对于最大可达点对数,一定存在一种方案,使得树根是树的任意一个重心时,将所有子树…
[POI2013]Taksówki 题目大意: ABC三地在同一条直线上,AC相距\(m(m\le10^{18})\)米,AB相距\(d\),B在AC之间.总共有\(n(n\le5\times10^5)\)辆车,每辆车只能从B地出发开\(x_i\)米(开完以后不必把车开回B地),问从A到C至少要坐几辆车? 思路: 对于BC之间的那一段路,如果可以走,则只要坐一辆车.对于AB之间的情况,只需要从大到小贪心即可. 将\(x\)排序后,找到大于等于\(m-d\)的最小的\(x_i\),作为从B到C的车…
[POI2013]Usuwanka 题目大意: 一排\(n\)个球,有黑白两种颜色.每取走一个球会在原位置放一个水晶球.求构造一种取球方案,满足: 每次取走\(k\)个白球和\(1\)个黑球: 一次取走的任意两个球之间没有水晶球. 保证方案存在. 思路: 用栈维护黑球的出现次数,若栈顶\(k+1\)个数中恰好有\(1\)个黑球,说明这些球可以一次性取出. 时间复杂度\(\mathcal O(n)\). 源代码: #include<cstdio> #include<cctype> i…