BZOJ2525: [Poi2011]Dynamite
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 300010
using namespace std;
bool spc[N];
int to[N<<1],nxt[N<<1],pre[N],cnt;
void ae(int ff,int tt)
{cnt++;to[cnt]=tt;nxt[cnt]=pre[ff];pre[ff]=cnt;
}
int L,tot;
int n,m;
int t[N];
int fa[N],f[N];
void dfs(int x)
{int i,j;int tmp1=-707185547,tmp2=-707185547;if(spc[x]) tmp1=0;for(i=pre[x];i;i=nxt[i]){j=to[i];if(j==fa[x]) continue;fa[j]=x;dfs(j);if(t[j]==1) tmp1=max(tmp1,f[j]+1);if(t[j]==2) tmp2=max(tmp2,f[j]-1);}if(tmp1>tmp2){if(tmp1==L){tot++;t[x]=2;f[x]=L;}else{t[x]=1;f[x]=tmp1;}}else{t[x]=2;f[x]=tmp2;}
}
bool judge(int x)
{L=x;tot=0;dfs(1);if(t[1]==1&&f[1]>=0) tot++;return (tot<=m);
}
int main()
{scanf("%d%d",&n,&m);int i,j,x,y;for(i=1;i<=n;i++)scanf("%d",&spc[i]);for(i=1;i<n;i++){scanf("%d%d",&x,&y);ae(x,y);ae(y,x);}int l=0,r=n,mid;while(l<r){mid=(l+r)>>1;if(judge(mid)) r=mid;else l=mid+1;}printf("%d",l);
}
BZOJ2525: [Poi2011]Dynamite相关推荐
- BZOJ2525 [Poi2011]Dynamite 【二分 + 贪心】
题目链接 BZOJ2525 题解 就是要求所有有炸弹的点到点燃点距离最大值最小 显然二分答案距离\(D\) 然后按深度排序,贪心点燃当前没覆盖的深度最深的点往上第\(D\)层的点 每覆盖一个点要标记其 ...
- [bzoj2527][Poi2011]Meteors_整体二分_树状数组
Meteors bzoj-2527 Poi-2011 题目大意:题目链接. 注释:略. 想法: 首先答案可以离线,且具有单调性. 这里的单调性就是随着时间的推移,每个国家收集的陨石数增加. 不难想到整 ...
- [bzoj2213][Poi2011]Difference_动态规划
Difference bzoj-2213 Poi-2011 题目大意:已知一个长度为n的由小写字母组成的字符串,求其中连续的一段,满足该段中出现最多的字母出现的个数减去该段中出现最少的字母出现的个数最 ...
- 洛谷 P3521 [POI2011]ROT-Tree Rotations 解题报告
P3521 [POI2011]ROT-Tree Rotations 题意:递归给出给一棵\(n(1≤n≤200000)\)个叶子的二叉树,可以交换每个点的左右子树,要求前序遍历叶子的逆序对最少. 大体 ...
- bzoj 2216: [Poi2011]Lightning Conductor(DP决策单调性)
2216: [Poi2011]Lightning Conductor Time Limit: 25 Sec Memory Limit: 64 MB Submit: 1292 Solved: 443 ...
- luogu P3527 [POI2011]MET-Meteors
luogu P3527 [POI2011]MET-Meteors 大意 就是给你一个长度为m的环,环上每个点属于一个国家,一共有n个国家,每次会有陨石掉落在环上的一段点上,每个国家都想要收集一定的陨石 ...
- [洛谷P3527] [POI2011]MET-Meteors
洛谷题目链接:[POI2011]MET-Meteors 题意翻译 Byteotian Interstellar Union有N个成员国.现在它发现了一颗新的星球,这颗星球的轨道被分为M份(第M份和第1 ...
- 「POI2011 R1」Conspiracy
「POI2011 R1」Conspiracy 解题思路 : 问题转化为,将点集分成两部分,其中一部分恰好组成一个团,其中另一部分恰好组成一个独立集. 观察发现,如果求出了一个解,那么答案最多可以在这个 ...
- # bzoj2215: [Poi2011]Conspiracy 2-sat
bzoj2215: [Poi2011]Conspiracy 2-sat 链接 https://www.lydsy.com/JudgeOnline/problem.php?id=2215 思路 一个点的 ...
- 【LG3527】[POI2011]MET-Meteors
[LG3527][POI2011]MET-Meteors 题面 洛谷 题解 整体二分. 每次二分\(mid\),如果到时间\(mid\)以收集过\(P_i\)就存入子序列\(L\),否则存入子序列\( ...
最新文章
- 简单介绍ASP中Cache技术的应用
- Android build.gradle(app)介绍
- 富人和穷人的八大差异
- XML编程(CRUD)
- 逐点比较法直线插补MATLAB
- 计算机安全常用防护策略,新手必看
- hdu3987(最小割最小边数)
- 公有云时代企业需要什么样的云平台
- 全栈工程师需要了解掌握的技术栈
- 腾讯云服务器漏洞怎么修复,腾讯云安全中心监测到微软披露的99个漏洞,win系统云服务器用户尽快修复...
- 组织机构树数据库表设计
- RGB,ARGB颜色值的表示表示
- 【汇正财经】企业资本的意义
- 【算法】剑指offer-删除链表中重复的节点最小栈
- 2013c语言二级等级考试试题,计算机等级考试二级c语言考试试题
- PHP 日期转换为时间戳 strtotime 与 mktime 函数
- 【树莓派】USB摄像头默认和指定使用设备
- 2018-2019-2 网络对抗技术 20165230 Exp4 恶意代码分析
- 从暗黑III的拍卖行探讨 - 为什么真正所有权并不会拯救你的游戏
- 中继器、集线器、网桥、交换机、路由器功能与比较