4726: [POI2017]Sabota?
Time Limit: 20 Sec Memory Limit: 128 MBSec Special Judge
Submit: 301 Solved: 127
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1
1
2
2
2
3
7
3
Sample Output
HINT
Source
树形DP。
f[i]表示i节点不叛变,最大的x值。
f[u] = max { min(f[v], p[v]) | v是u的儿子 }
其中p[i]是i节点子树大小占父节点所有儿子子树大小的比例。
#include <bits/stdc++.h> inline int get_c(void)
{
static const int siz = ; static char buf[siz];
static char *head = buf + siz;
static char *tail = buf + siz; if (head == tail)
fread(head = buf, , siz, stdin); return *head++;
} inline int get_i(void)
{
register int ret = ;
register int neg = false;
register int bit = get_c(); for (; bit < ; bit = get_c())
if (bit == '-')neg ^= true; for (; bit > ; bit = get_c())
ret = ret * + bit - ; return neg ? -ret : ret;
} const int maxn = ;
const double inf = 2e18; int n;
int m;
int edges;
int fa[maxn];
int hd[maxn];
int to[maxn];
int nt[maxn]; inline void add(int u, int v)
{
nt[edges] = hd[u]; to[edges] = v; hd[u] = edges++;
} int size[maxn]; void dfs1(int u)
{
size[u] = ; for (int i = hd[u]; ~i; i = nt[i])
dfs1(to[i]), size[u] += size[to[i]];
} double p[maxn]; void dfs2(int u)
{
for (int i = hd[u]; ~i; i = nt[i])
dfs2(to[i]); if (u != )
p[u] = (double)size[u] / (size[fa[u]] - );
} double f[maxn]; void dfs3(int u)
{
for (int i = hd[u]; ~i; i = nt[i])
dfs3(to[i]); using namespace std; for (int i = hd[u]; ~i; i = nt[i])
f[u] = max(f[u], min(p[to[i]], f[to[i]])); if (size[u] == )
f[u] = 1.0;
} signed main(void)
{
n = get_i();
m = get_i(); memset(hd, -, sizeof(hd)); for (int i = ; i <= n; ++i)
fa[i] = get_i(), add(fa[i], i); dfs1(); dfs2(); dfs3(); /*
for (int i = 1; i <= n; ++i)
printf("%f ", p[i]);
puts(""); for (int i = 1; i <= n; ++i)
printf("%f ", f[i]);
puts(""); for (int i = 1; i <= n; ++i)
printf("%d ", size[i]);
puts("");
*/ double ans = ; for (int i = ; i <= n; ++i)
if (size[i] > m)ans = std::max(ans, f[i]); printf("%f\n", ans);
}
@Author: YouSiki
BZOJ 4726: [POI2017]Sabota?的更多相关文章
-
BZOJ 4726: [POI2017]Sabota? 树形dp
4726: [POI2017]Sabota? 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4726 Description 某个公司有n ...
-
BZOJ 4726 [POI2017]Sabota?:树形dp
传送门 题意 某个公司有 $ n $ 个人,上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他下属(直接或者间接, 不包括他自己)中叛徒占的比例超过 $ x $ , ...
-
BZOJ 4726 POI 2017 Sabota? 树形DP
4726: [POI2017]Sabota? Time Limit: 20 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 128 Solved ...
-
BZOJ_4726_[POI2017]Sabota?_树形DP
BZOJ_4726_[POI2017]Sabota?_树形DP Description 某个公司有n个人, 上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他 下属 ...
-
[POI2017]Sabotaż
[POI2017]Sabotaż 题目大意: 一棵\(n(n\le5\times10^5)\)个结点的树,初始时有一个未知的黑点,其余全为白点.对于一个点,如果其子树中黑点所占比例超过\(x\),则这 ...
-
【BZOJ4726】[POI2017]Sabota? 树形DP
[BZOJ4726][POI2017]Sabota? Description 某个公司有n个人, 上下级关系构成了一个有根树.其中有个人是叛徒(这个人不知道是谁).对于一个人, 如果他 下属(直接或者 ...
-
P5958 【[POI2017]Sabotaż】
P5958 [[POI2017]Sabotaż] 题意描述 在一棵以1号节点为根节点的树上,有很多纯洁的白点, BUT,突然有一个黑点出现(可能在任意位置) 它要染黑尽可能多的节点,而在一棵子树中, ...
-
BZOJ 4727: [POI2017]Turysta
4727: [POI2017]Turysta Time Limit: 20 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 117 Solved ...
-
bzoj 4725 [POI2017]Reprezentacje r&#243;?nicowe 暴力
[POI2017]Reprezentacje ró?nicowe Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 141 Solved: 67[Sub ...
随机推荐
-
MySQL数据的主从复制、半同步复制和主主复制详解
一.MySQL复制概述 ⑴.MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费 ...
-
用GDB调试多进程程序
在子进程中sleep.然后attach上去. gdb --pid=123456 ps出子进程的id,gdb attach 进程号. http://www.ibm.com/developerworks/ ...
-
对thinkphp的命名空间的理解
tp的命名空间其实就是虚拟目录,目的是为了自动加载类(不是管理文件) tp命名空间包含两部分: (1)初始命名空间:Library (2)根命名空间: a)Library文件下的所有文件夹,只含一级文 ...
-
Gym 100247C	Victor&#39;s Research(有多少区间之和为S)
https://vjudge.net/problem/Gym-100247C 题意: 给出一串数,求有多少个区间的和正好等于S. 思路:计算处前缀和,并且用map维护一下每个前缀和出现的次数.这样接下 ...
-
go语言中的strings常用函数和格式化输出
package main; import ( "fmt" "strings" ) type person struct { name string; age i ...
-
ELK5.4安装Xpack
X-Pack是一个Elastic Stack的扩展,将安全,警报,监控,报告和图形功能包含在一个易于安装的软件包中.在Elasticsearch 5.0.0之前,必须安装单独的Shield.Watch ...
-
linux mysql access denied for user ‘root’@’localhost&#39;(using password:YES)
linux安装完mysql后,使用程序连接报以上错误解决方法,重新设置密码,步骤如下 1.先停掉原来的服务 service mysqld stop 2.使用安全模式登陆,跳过密码验证 mysqld_s ...
-
windows server 2003安装Oracle webtier 32位因环境变量原因报错
在服务中启动Oracle processer manager时报错:错误1053:服务没有及时响应启动或控制请求 原因是本系统还安装过BI和Oracle数据库等产品 解决方法:删除和本次安装无关的环境 ...
-
【大数据之数据仓库】安装部署GreenPlum集群
本篇将向大家介绍如何快捷的安装部署GreenPlum测试集群,大家可以跟着我一块儿实践一把^_^ 1.主机资源 申请2台网易云主机,操作系统必须是RedHat或者CentOS,配置尽量高一点.如果是s ...
-
ubuntu 忘记root密码
Ubuntu14.04系统中,因为误操作导致管理员密码丢失或无效,并且忘记root密码,此时无法进行任何root/sudo权限操作.可以通过GRUB重新设置root密码,并恢复管理员账户到正常状态. ...