首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
[POI2017]bzoj4726 Sadota?
】的更多相关文章
[POI2017]bzoj4726 Sadota?
题目描述 离线题库请 题目描述 某个公司有\(n\)个人, 上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他 下属(直接或者间接, 不包括他自己)中叛徒占的比例超过\(x\),那么这个人也会变成叛徒,并且他的所有下属都会变 成叛徒.你要求出一个最小的\(x\),使得最坏情况下,叛徒的个数不会超过\(k\). 输入格式 第一行包含两个正整数\(n,k(1<=k<=n<=500000)\). 接下来\(n-1\)行,第\(i\)行包含一个正整数\(p[i…
【POI2017||bzoj4726】Sabota?
上学期putsnan过了一次,这学期认真写了一遍…… #include<bits/stdc++.h> #define N 500010 using namespace std; ]; ,n,k,size[N]; double dp[N]; inline void addedge(int u,int v){ G[++tot].u=u;G[tot].v=v;G[tot].next=head[u];head[u]=tot; } void dfs(int u){ size[u]++;; for(int…
【POI2017||bzoj4726】Flappy Birds
外国人很良心的啊,这题比NOIP那题还简单…… 不用管他最后的位置,因为移动的次数肯定是恒定的,所以维护在每一个柱子的位置能飞到的范围,递推下去即可. #include<bits/stdc++.h> using namespace std; int n,x,y,ans,pos; inline int read(){ ,x=;char ch; ;}'); +ch-'); return f*x; } int main(){ n=read();int ttt=read(); ;i<=n;i++…
【BZOJ4726】[POI2017]Sabota? 树形DP
[BZOJ4726][POI2017]Sabota? Description 某个公司有n个人, 上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他 下属(直接或者间接, 不包括他自己)中叛徒占的比例超过x,那么这个人也会变成叛徒,并且他的所有下属都会变 成叛徒.你要求出一个最小的x,使得最坏情况下,叛徒的个数不会超过k. Input 第一行包含两个正整数n,k(1<=k<=n<=500000). 接下来n-1行,第i行包含一个正整数p[i+1],…
bzoj4726【POI2017】Sabota?
首先可以推出来如果i没有带头叛变,那么i的父亲也一定不会带头叛变,证明显然 所以最劣情况初始的叛徒肯定是叶子,并且带头叛变的人一定是从某个叶子往上走一条链 f[i]表示i不带头叛变的话最小的x 那么我们对所有子树大小>k的f值取max即是答案 f[i]=max j为i的儿子 (min(f[j],siz[j]/(siz[i]-1)) 因为对于i的一个儿子j,假如i因为j的子树里的叛徒比例大于x而带头叛变,那么既要满足x<=(j的子树大小占i的子树大小的比例),还要满足j带头叛变即x<=f[…
【树形dp】bzoj4726: [POI2017]Sabota?
找点概率期望的题做一做 Description 某个公司有n个人, 上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他 下属(直接或者间接, 不包括他自己)中叛徒占的比例超过x,那么这个人也会变成叛徒,并且他的所有下属都会变 成叛徒.你要求出一个最小的x,使得最坏情况下,叛徒的个数不会超过k. Input 第一行包含两个正整数n,k(1<=k<=n<=500000). 接下来n-1行,第i行包含一个正整数p[i+1],表示i+1的父亲是p[i+1](1…
BZOJ4726: [POI2017]Sabota?
$n \leq 500000$的树,开始有一个点是坏的,如果一个子树中坏点比例(不包括根节点)超过x那这整棵子树就会变坏,问最坏情况下不超过$K$个坏点的情况下$x$最小是多少. 被坑成傻逼.. 可以发现最坏情况下一开始的坏点一定是某个叶子. 首先容易看出的做法是二分完直接dp一次验证是否超过$K$,没想到log居然过不了5e5. 百度上有个大爷:“这不是二分+dp吗,不知道为啥过的人那么少.”妈耶我常数bigbig..算了反正正解是O(n)的学一学. $f(i)$--子树$i$中,要使$i$不…
[bzoj4726][POI2017][Sabota?] (树形dp)
Description 某个公司有n个人, 上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他 下属(直接或者间接, 不包括他自己)中叛徒占的比例超过x,那么这个人也会变成叛徒,并且他的所有下属都会变 成叛徒.你要求出一个最小的x,使得最坏情况下,叛徒的个数不会超过k. Input 第一行包含两个正整数n,k(1<=k<=n<=500000). 接下来n-1行,第i行包含一个正整数p[i+1],表示i+1的父亲是p[i+1](1<=p[i+1]&…
BZOJ 4726: [POI2017]Sabota?
4726: [POI2017]Sabota? Time Limit: 20 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 301 Solved: 127[Submit][Status][Discuss] Description 某个公司有n个人, 上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他 下属(直接或者间接, 不包括他自己)中叛徒占的比例超过x,那么这个人也会变成叛徒,并且他的所有下属都会变…
【BZOJ-4726】Sabota? 树形DP
4726: [POI2017]Sabota? Time Limit: 20 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 128 Solved: 49[Submit][Status][Discuss] Description 某个公司有n个人, 上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他下属(直接或者间接, 不包括他自己)中叛徒占的比例超过x,那么这个人也会变成叛徒,并且他的所有下属都会变成叛徒…
[bzoj4726]Sabota
做的题太少,什么都要看题解.. 题意只给出一个叛徒,则他一定是叶子结点(最坏情况下),那么"带头反叛"的点一定构成了一条链. 令f[u]表示u不带头反叛的最小值,则考虑它的每一支儿子v,(不反叛)f[v],(反叛)size[v]/(size[u]-1),这里取一个min. 因为是最坏情况,所以对所有儿子取max. 现在来考虑答案如何构造(这个我写完想了很久),对于std中ans=max(ans,f[u])的做法(size[u]>k), 先证必要性:显然,每一棵size大于K的子树…
BZOJ4724 [POI2017]Podzielno
4724: [POI2017]Podzielno Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 77 Solved: 37[Submit][Status][Discuss] Description B进制数,每个数字i(i=0,1,...,B-1)有a[i]个.你要用这些数字组成一个最大的B进制数X(不能有前导零,不需要 用完所有数字),使得X是B-1的倍数.q次询问,每次询问X在B进制下的第k位数字是什么(最低位是第0位). Input 第一…
BZOJ 4726: [POI2017]Sabota? 树形dp
4726: [POI2017]Sabota? 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4726 Description 某个公司有n个人, 上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他 下属(直接或者间接, 不包括他自己)中叛徒占的比例超过x,那么这个人也会变成叛徒,并且他的所有下属都会变 成叛徒.你要求出一个最小的x,使得最坏情况下,叛徒的个数不会超过k. Input 第一行包含两个正…
BZOJ 4727: [POI2017]Turysta
4727: [POI2017]Turysta Time Limit: 20 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 117 Solved: 39[Submit][Status][Discuss] Description 给出一个n个点的有向图,任意两个点之间有且仅一条有向边.对于每个点v,求出从v出发的一条经过点数最多, 且没有重复经过同一个点两次以上的简单路径. Input 第一行包含一个正整数n(2<=n<=2000),表示点…
BZOJ_4726_[POI2017]Sabota?_树形DP
BZOJ_4726_[POI2017]Sabota?_树形DP Description 某个公司有n个人, 上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他 下属(直接或者间接, 不包括他自己)中叛徒占的比例超过x,那么这个人也会变成叛徒,并且他的所有下属都会变 成叛徒.你要求出一个最小的x,使得最坏情况下,叛徒的个数不会超过k. Input 第一行包含两个正整数n,k(1<=k<=n<=500000). 接下来n-1行,第i行包含一个正整数p[i+…
[POI2017]Sabotaż
[POI2017]Sabotaż 题目大意: 一棵\(n(n\le5\times10^5)\)个结点的树,初始时有一个未知的黑点,其余全为白点.对于一个点,如果其子树中黑点所占比例超过\(x\),则这整棵子树也都会变成黑点.求最小的\(x\),使得最坏情况下,黑点的个数不会超过\(k\). 思路: 树形DP. \(f[i]\)表示无法使\(i\)子树全黑的最大\(x\). \(f[i]=\max\{\min(f[j],\frac{size[j]}{size[i]-1})\}\),其中\(j\)为…
bzoj 4725 [POI2017]Reprezentacje ró?nicowe 暴力
[POI2017]Reprezentacje ró?nicowe Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 141 Solved: 67[Submit][Status][Discuss] Description 给定一个数列a: 当n<=2时,a[n]=n 当n>2,且n是奇数时,a[n]=2a[n-1] 当n>2,且n是偶数时,a[n]=a[n-1]+r[n-1] 其中r[n-1]=mex(|a[i]-a[j]|)(1<=i…
bzoj 4724 [POI2017]Podzielno 二分+模拟
[POI2017]Podzielno Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 364 Solved: 160[Submit][Status][Discuss] Description B进制数,每个数字i(i=0,1,...,B-1)有a[i]个.你要用这些数字组成一个最大的B进制数X(不能有前导零,不需要 用完所有数字),使得X是B-1的倍数.q次询问,每次询问X在B进制下的第k位数字是什么(最低位是第0位). Input 第一行包含两…
bzoj 4723 [POI2017]Flappy Bird 模拟
[POI2017]Flappy Bird Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 482 Solved: 196[Submit][Status][Discuss] Description <飞扬的小鸟>是一款风靡的小游戏.在游戏中,小鸟一开始位于(0,0)处,它的目标是飞到横坐标为X的某个位置 上.每一秒,你可以选择点击屏幕,那么小鸟会从(x,y)飞到(x+1,y+1),或者不点击,那么小鸟会飞到(x+1,y-1) .在游戏中还有n个障…
【BZOJ4723】[POI2017]Flappy Bird DP
[BZOJ4723][POI2017]Flappy Bird Description <飞扬的小鸟>是一款风靡的小游戏.在游戏中,小鸟一开始位于(0,0)处,它的目标是飞到横坐标为X的某个位置 上.每一秒,你可以选择点击屏幕,那么小鸟会从(x,y)飞到(x+1,y+1),或者不点击,那么小鸟会飞到(x+1,y-1) .在游戏中还有n个障碍物,用三元组(x[i],a[i],b[i])描述,表示在直线x=x[i]上,y<=a[i]或者y>=b[i]的部分 都是障碍物,碰到或者擦边都算游…
【BZOJ4724】[POI2017]Podzielno 数学+二分
[BZOJ4724][POI2017]Podzielno Description B进制数,每个数字i(i=0,1,...,B-1)有a[i]个.你要用这些数字组成一个最大的B进制数X(不能有前导零,不需要用完所有数字),使得X是B-1的倍数.q次询问,每次询问X在B进制下的第k位数字是什么(最低位是第0位). Input 第一行包含两个正整数B(2<=B<=10^6),q(1<=q<=10^5). 第二行包含B个正整数a[0],a[1],a[2],...,a[B-1](1<…
[POI2017]Sabota【观察+树形Dp】
Online Judge:Bzoj4726 Label:观察,树形Dp,水题 题目描述 某个公司有n个人, 上下级关系构成了一个有根树.公司中出了个叛徒(这个人不知道是谁). 对于一个人, 如果他下属(直接或者间接, 不包括他自己)中叛徒占的比例超过x,那么这个人也会变成叛徒,并且他的所有下属都会变成叛徒. 你要求出一个最小的x,使得最坏情况下,叛徒的个数不会超过k. 输入 第一行包含两个正整数n,k(1<=k<=n<=500000). 接下来n-1行,第i行包含一个正整数p[i+1],…
P5958 【[POI2017]Sabotaż】
P5958 [[POI2017]Sabotaż] 题意描述 在一棵以1号节点为根节点的树上,有很多纯洁的白点, BUT,突然有一个黑点出现(可能在任意位置) 它要染黑尽可能多的节点,而在一棵子树中, 只有当黑点的比例\(>x\)才可以染黑根节点(即整棵子树) 求x的最小值,使得整棵树中被染黑的节点数不超过\(k\)个 如果你看不懂请走传送门 算法分析 一道很裸的树形DP,但思路很巧 显然本题有以下性质: 最坏情况下,最开始的叛徒是叶子结点 因为一个节点被染黑了,一起为根节点的子树将全黑,所以最终…
BZOJ 4725: [POI2017]Reprezentacje ró?nicowe
Description 一个数列. \(a_1=1,a_2=2\) 当 \(n>2\) 时 \[a_n = \{ \begin {matrix} 2a_{n-1},\text{n is an odd number} \\ a_{n-1}+r_{n-1},\text{ n is an even number } \end{matrix} \] \(S_n=\{a_i-a_j,1 \leqslant j<i\leqslant n\}\) \(r_n\) 为最小不在 \(S_n\) 中的非负整数.…
BZOJ 4724: [POI2017]Podzielno
Description 由\([0,B-1]\)的数字构造一个 \(B\) 进制数字,使得他是 \(B-1\) 的倍数. Sol 贪心+二分. 首先 \(X\) 是 \(B-1\) 的倍数,那么有 \(X \equiv 0 (mod B-1)\) 设 \(X\) 的第 \(i\) 位,为\(X_i\) 那么则有 \(\sum_{i=0}^{n-1}x_iB^i \equiv 0(mod B-1)\) 因为 \(B^i \equiv 1(mod B-1)\) 所以就是 \(\sum_{i=0}^{…
BZOJ 4723: [POI2017]Flappy Bird
Description 从一个点到一条直线,每次纵坐标只能增加或减少1,有些位置有障碍,求最少增加步数. Sol 贪心. 或许是贪心吧...反正在可到达的范围内,纵坐标尽量小... 做的时候维护一下两个端点,因为在这个区间内操作数单调递增,只需要取最下面的点就好. Code /************************************************************** Problem: 4723 User: BeiYu Language: C++ Result:…
BZOJ4727 [POI2017]Turysta
这题太神了还是去看刺儿神题解吧. http://www.cnblogs.com/neighthorn/p/6538364.html #include <cstdio> #include <algorithm> using std::min; ; int n,y,tt,ti,tp,t2,a[N][N],df[N],lo[N],st[N],v[N],bl[N],b[N][N],f[N],g[N],p[N],sz[N],h[N],nx[N]; void sol() { ],ta=h[],…
BZOJ4723[POI2017]Flappy Bird——模拟
题目描述 <飞扬的小鸟>是一款风靡的小游戏.在游戏中,小鸟一开始位于(0,0)处,它的目标是飞到横坐标为X的某个位置 上.每一秒,你可以选择点击屏幕,那么小鸟会从(x,y)飞到(x+1,y+1),或者不点击,那么小鸟会飞到(x+1,y-1) .在游戏中还有n个障碍物,用三元组(x[i],a[i],b[i])描述,表示在直线x=x[i]上,y<=a[i]或者y>=b[i]的部分 都是障碍物,碰到或者擦边都算游戏失败.请求出小鸟从(0,0)飞到目的地最少需要点击多少次屏幕. 输入 第一…
BZOJ.4727.[POI2017]Turysta(哈密顿路径/回路 竞赛图)
题目链接 \(Description\) 给出一个n个点的有向图,任意两个点之间有且仅一条有向边.对于每个点v,求出从v出发的一条经过点数最多,且没有重复经过同一个点一次以上的简单路径. n<=2000 \(Solution\) 详细题解在这 竞赛图缩点后得到的拓扑图一定是一条链,因为竞赛图任意两点前后关系确定,所以只有一种拓扑序列 从前边强连通分量中的任意一点出来 都可以到达后边强连通分量的任意一点 因为竞赛图的每个强连通分量一定存在一条哈密顿回路 所以只需要求出每一个强连通分量的哈密顿回路,…
bzoj千题计划232:bzoj4727: [POI2017]Turysta
http://www.lydsy.com/JudgeOnline/problem.php?id=4727 竞赛图tarjan缩点后得到的拓扑图一定是一条链 因为竞赛图任意两点的前后顺序确定,只有一种拓扑序列 竞赛图tarjan缩完点后,若出现强联通分量A和B 那么A中所有点 和 B中所有点的连边 要么全指向A中所有点,要么全指向B中所有点 否则A和B就是一个强联通分量 所以把缩完点之后按点的入度从小到大排序,即可得到竞赛图的拓扑序列 在这个拓扑序列上,可以从前面的强联通分量中任意一个点出来,到达…