P3523 POI2011 DYN-Dynamite
P3523 POI2011 DYN-Dynamite
小 trick,加双倍经验。
思路
使 \(dis\) 的最大值最小,可以想到二分 \(dis\),然后根据 \(dis\) 判断可行性。
那么可以把问题转化为,所有关键点到选择的点的距离小于 \(dis\) 的前提下,使得使用的点的个数最小。
这就是:P3942 将军令
考虑设 \(f[u]\) 为距离 \(u\) 最近的选中的点的距离,\(g[u]\) 为距离 \(u\) 最远的未被覆盖的关键点的距离。
这里覆盖指:对于一个关键点,到最近的被选中点的距离小于等于当前二分的 \(dis\)。
有朴素转移:
\]
\]
然后要分讨一下(下文中的 \(mid\) 为二分的距离):
当 \(f[u]>mid\) 且 \(u\) 为关键点。
\(g[u]=max(g[u],0)\)。
解释:显而易见,当前点可以作为一个没有被覆盖的关键点。
当 \(g[u]+f[u]\leq mid\)。
\(g[u]=-\infty\)。
解释:显然没有一个没被覆盖的关键点,易证 \(g[u]\) 和 \(f[u]\) 不来自一棵子树。
当 \(g[u]=mid\)。
\(g[u]=-\infty,f[u]=0\) 且需选择的点个数加一。
解释:该点必须被选择。
最后判断一下根的 \(g[u]\) 是否大于 \(0\),如果大于 \(0\) 在加一个选中的点。
然后套上二分就 OK 了。
CODE
#include<bits/stdc++.h>
using namespace std;
const int maxn=3e5+5;
struct Edge
{
int tot;
int head[maxn];
struct edgenode{int to,nxt;}edge[maxn*2];
inline void add(int x,int y)
{
tot++;
edge[tot].to=y;
edge[tot].nxt=head[x];
head[x]=tot;
}
}T;
int n,m;
int a[maxn];
int g[maxn],f[maxn];
int gs;
inline void dfs(int u,int fa,int mid)
{
g[u]=-1e9,f[u]=1e9;
for(int i=T.head[u];i;i=T.edge[i].nxt)
{
int v=T.edge[i].to;
if(v==fa) continue;
dfs(v,u,mid);
f[u]=min(f[v]+1,f[u]);
g[u]=max(g[v]+1,g[u]);
}
if(f[u]>mid&&a[u]) g[u]=max(g[u],0);
if(f[u]+g[u]<=mid) g[u]=-1e9;
if(g[u]==mid) f[u]=0,g[u]=-1e9,gs++;
}
inline void solve(int mid)
{
gs=0;
dfs(1,0,mid);
gs+=(g[1]>=0);
printf("%d",gs);
}
int main()
{
int t;
scanf("%d%d%d",&n,&m,&t);
for(int i=1;i<=n;i++) a[i]=1;
for(int i=1;i<n;i++)
{
int u,v;
scanf("%d%d",&u,&v);
T.add(u,v),T.add(v,u);
}
solve(m);
}
P3523 POI2011 DYN-Dynamite的更多相关文章
- 10月清北学堂培训 Day 6
今天是黄致焕老师的讲授~ T1 自信 AC 莫名 80 pts???我还是太菜了!! 对于每种颜色求出该颜色的四个边界,之后枚举边界构成的矩阵中每个元素,如果不等于该颜色就标记那种颜色不能最先使用. ...
- 【BZOJ2525】[Poi2011]Dynamite 二分+树形DP
[BZOJ2525][Poi2011]Dynamite Description Byteotian Cave的结构是一棵N个节点的树,其中某些点上面已经安置了炸.药,现在需要点燃M个点上的引线引爆所有 ...
- bzoj 2525 [Poi2011]Dynamite 二分+树形dp
[Poi2011]Dynamite Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 270 Solved: 138[Submit][Status][D ...
- 【BZOJ2525】[Poi2011]Dynamite(二分,树形dp)
[BZOJ2525][Poi2011]Dynamite Description Byteotian Cave的结构是一棵N个节点的树,其中某些点上面已经安置了炸.药,现在需要点燃M个点上的引线引爆所有 ...
- Bzoj 2525 [Poi2011]Dynamite
2525: [Poi2011]Dynamite Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 240 Solved: 120[Submit][Sta ...
- BZOJ 2525 Poi2011 Dynamite 二分答案+树形贪心
题目大意:给定一棵树,有一些点是关键点,要求选择不超过mm个点.使得全部关键点到近期的选择的点距离最大值最小 二分答案,问题转化为: 给定一棵树,有一些点是关键点,要求选择最少的点使得每一个关键点到选 ...
- BZOJ2525 [Poi2011]Dynamite 【二分 + 贪心】
题目链接 BZOJ2525 题解 就是要求所有有炸弹的点到点燃点距离最大值最小 显然二分答案距离\(D\) 然后按深度排序,贪心点燃当前没覆盖的深度最深的点往上第\(D\)层的点 每覆盖一个点要标记其 ...
- bzoj 2525: [Poi2011]Dynamite【二分+树上贪心】
一眼二分.然后重点是树上贪心部分 长得像dp一样,设mn为子树内已炸点的最浅点,mx为子树内没有炸并且需要炸的最深点,然后转移直接从子树继承即可 然后是判断当前u点是否需要炸,当mx[u]+mn[u] ...
- POI2011题解
POI2011题解 2214先咕一会... [BZOJ2212][POI2011]Tree Rotations 线段树合并模板题. #include<cstdio> #include< ...
- BZOJ2527: [Poi2011]Meteors
补一发题解.. 整体二分这个东西,一开始感觉复杂度不是很靠谱的样子 问了po姐姐,说套主定理硬干.. #include<bits/stdc++.h> #define ll long lon ...
随机推荐
- yum下载包保存到本地
1.使用yumdownloadonly下载RPM包及依赖包 #下载yumdownloadonly插件 yum install yum-plugin-downloadonly # yum 下载rpm包到 ...
- 十五分钟两百行代码,手写一个vue项目全局通用的弹框
前言: 我们在写vue项目时,弹框是非常常用的组件,并且在同一个项目中,弹框大多类似.所以我们可以抽离封装出一个通用的弹框: 因为vue3可向下兼容,所以作者这边会使用vue2的写法,vue3写法大同 ...
- React的prop-types下载安装教程
最近刚入门react,所有react的资源都是从本地导入的,这就难免要去网上找要用的包,react包和reactdom,还有babel的包都挺好找的,官网就有现成的可以用,但是prop-types包貌 ...
- Mac上HomeBrew安装及换源教程
Mac上HomeBrew安装及换源教程 Mac的Mac OS系统来源于Unix系统,得益于此Mac系统的使用类似于Linux,因此Linux系统中的包管理概念也适用于Mac,而HomeBrew便是其中 ...
- 【YashanDB知识库】手动停止统计信息自动收集任务导致的性能变差
[问题分类]功能使用 [关键字]统计信息收集 [问题描述]UAT对外演示环境因统计信息收集任务引起数据库整理性能变慢无应急处理手段 [问题原因分析] ● DROP_JOB程序用于删除一个非执行状态下的 ...
- 一个开源、跨平台的.NET UI框架 - Avalonia UI
前言 今天大姚给大家分享一个开源.免费(MIT License).跨平台的.NET UI框架:Avalonia UI. Avalonia是一个成熟稳定的平台,用于构建桌面.嵌入式.移动的和Web应用程 ...
- 人脸伪造图像检测:Deepfake魔高一尺,TextIn道高一丈
只因开了一个视频会议,直接被骗1.8个亿 今年2月,一家跨国公司的香港分公司财务人员被一场精心策划的Deepfake视频会议诈骗,导致公司损失2亿港币(约1.8亿人民币). 事件起因是财务人员收到 ...
- CSS – initial, Inherit, unset, revert
参考 Understanding the "Initial", "Inherit" and "Unset" CSS Keywords [译] ...
- ASP.NET Core – Swagger OpenAPI (Swashbuckle)
前言 Swagger (OpenAPI) 是一套 Web API 文档规范. ASP.NET Core 有 2 个 Library 可用来实现 Swagger. Swashbuckle 和 NSwag ...
- Spring —— 注解开发(总结)
XML配置与注解配置对比