bzoj4726 [POI2017]Sabota 二分+暴力
来源:互联网 发布:巨人网络a股上市 编辑:程序博客网 时间:2024/06/11 19:43
直接二分,判断的话太显然了吧。。
不知道为什么那么少人A。
#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#define fo(i,a,b) for(int i=a;i<=b;i++)#define fd(i,a,b) for(int i=a;i>=b;i--)using namespace std;const double eps=1e-7;const int N=5e5+5;int siz[N],fa[N],tot,head[N],go[N],next[N];int mx[N];int n,k;inline bool pd(double x){ fo(i,1,n)mx[i] = 0; fd(i, n, 1){ if(siz[i]) if(mx[i] / (double)siz[i] - x > eps) mx[i] = siz[i] + 1; mx[i] = max(mx[i], 1); mx[fa[i]] = max(mx[fa[i]], mx[i]); } if(mx[1] <= k) return true; return false;}int main(){ scanf("%d%d",&n,&k); fo(i,2,n) { int x; scanf("%d",&x); fa[i]=x; } fo(i,1,n)siz[i]=1; fd(i,n,1)siz[fa[i]]+=siz[i]; fo(i,1,n)siz[i]--; double l = 0.0, r = 1.0, ans,mid; while(abs(r - l) > eps){ mid = (l + r) / 2.0; if(pd(mid)) r = mid; else l = mid; } printf("%.9lf\n",r);}
阅读全文
0 0
- bzoj4726 [POI2017]Sabota 二分+暴力
- BZOJ4726: [POI2017]Sabota?
- bzoj4726 [POI2017]Sabota?
- BZOJ4726 [POI2017]Sabota?
- BZOJ4726: [POI2017]Sabota?
- [bzoj4726][POI2017]Sabota?
- BZOJ4726——[POI2017]Sabota?
- BZOJ4726 [POI2017][Sabota?] 树形DP
- 【BZOJ4726】【树形期望DP】[POI2017]Sabota? 题解
- bzoj4726 [ POI2017 ] -- 树形DP
- 【BZOJ】4726 [POI2017] Sabota?
- BZOJ 4726 [POI2017] Sabota?
- 4726: [POI2017]Sabota?
- BZOJ 4726: [POI2017]Sabota?【树形dp
- BZOJ 4726 POI2017 Sabota? 树形DP
- bzoj 4726: [POI2017]Sabota? 树形dp
- [BZOJ]4726 [POI2017] Sabota? 树形Dp
- 二分+暴力
- 面试题58:二叉树的下一个结点
- Zookeeper源码解析——快速选举流程
- 可重入函数
- java.lang.Object.clone()分析
- react-native之打包apk时报错
- bzoj4726 [POI2017]Sabota 二分+暴力
- linux的目录管理
- 野狗云API之详解(分页,查询,删除,更新)-yellowcong
- Android使用友盟集成QQ、微信、微博等第三方分享
- Android 观察者模式
- (64)LinkList特有方法:方法名带first,last
- 算法-->插入排序
- 使用科大讯飞提供的SDK实现android语音识别
- Android中实现滑动的方式