【BZOJ3872】[Poi2014]Ant colony 树形DP+二分
【BZOJ3872】[Poi2014]Ant colony
Description
Input
Output
Sample Input
3 4 1 9 11
1 2
1 4
4 3
4 5
4 6
6 7
Sample Output
题解:可以先把第一条边拆掉,然后分成两棵树进行树形DP。因为根节点的取值是确定的,并且每个点的度数也是确定的,所以可以根据父亲的取值范围得出儿子的取值范围,最终得出所有叶子节点的取值范围。然后将m数组排序,对于每个节点都在m数组里二分一下统计答案即可。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
const int maxn=1000010;
const ll inf=1<<30;
int n,m,cnt,r1,r2;
ll K,ans;
int to[maxn<<1],next[maxn<<1],head[maxn],d[maxn],fa[maxn];
ll l[maxn],r[maxn],v[maxn];
inline void add(int a,int b)
{
to[cnt]=b,next[cnt]=head[a],head[a]=cnt++;
}
inline int rd()
{
int ret=0,f=1; char gc=getchar();
while(gc<'0'||gc>'9') {if(gc=='-') f=-f; gc=getchar();}
while(gc>='0'&&gc<='9') ret=ret*10+gc-'0',gc=getchar();
return ret*f;
}
void dfs(int x)
{
for(int i=head[x];i!=-1;i=next[i]) if(to[i]!=fa[x])
{
fa[to[i]]=x;
if(d[to[i]]==1) l[to[i]]=l[x],r[to[i]]=r[x];
else l[to[i]]=min(inf,l[x]*(d[to[i]]-1)),r[to[i]]=min(inf,(r[x]+1)*(d[to[i]]-1)-1);
dfs(to[i]);
}
}
int main()
{
n=rd(),m=rd(),K=rd();
int i,a,b;
for(i=1;i<=m;i++) v[i]=rd();
v[m+1]=inf+1;
sort(v+1,v+m+1);
r1=rd(),r2=rd(),d[r1]++,d[r2]++;
memset(head,-1,sizeof(head));
for(i=1;i<n-1;i++) a=rd(),b=rd(),add(a,b),add(b,a),d[a]++,d[b]++;
if(d[r1]==1) l[r1]=r[r1]=K;
else l[r1]=K*(d[r1]-1),r[r1]=(K+1)*(d[r1]-1)-1;
if(d[r2]==1) l[r2]=r[r2]=K;
else l[r2]=K*(d[r2]-1),r[r2]=(K+1)*(d[r2]-1)-1;
dfs(r1),dfs(r2);
for(i=1;i<=n;i++) if(d[i]==1)
a=lower_bound(v+1,v+m+1,l[i])-v,b=upper_bound(v+1,v+m+1,r[i])-v,ans+=(b-a)*K;
printf("%lld",ans);
return 0;
}
【BZOJ3872】[Poi2014]Ant colony 树形DP+二分的更多相关文章
- bzoj 3872: [Poi2014]Ant colony -- 树形dp+二分
3872: [Poi2014]Ant colony Time Limit: 30 Sec Memory Limit: 128 MB Description There is an entranc ...
- [bzoj3872][Poi2014]Ant colony_树形dp
Ant colony bzoj-3872 Poi-2014 题目大意:说不明白.....题目链接 注释:略. 想法:两个思路都行. 反正我们就是要求出每个叶子节点到根节点的每个路径权值积. 可以将边做 ...
- [BZOJ3872][Poi2014]Ant colony
[BZOJ3872][Poi2014]Ant colony 试题描述 There is an entrance to the ant hill in every chamber with only o ...
- $bzoj3872\ [Poi2014]\ Ant\ colony$ 二分+$dp$
正解:二分+$dp$ 解题报告: 传送门$QwQ$ 一年过去了依然没有头绪,,,$gql$的$NOIp$必将惨败了$kk$. 考虑倒推,因为知道知道除数和答案,所以可以推出被除数的范围,然后一路推到叶 ...
- 【BZOJ3872】Ant colony(二分,动态规划)
[BZOJ3872]Ant colony(二分,动态规划) 题面 又是权限题... Description There is an entrance to the ant hill in every ...
- 两种解法-树形dp+二分+单调队列(或RMQ)-hdu-4123-Bob’s Race
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4123 题目大意: 给一棵树,n个节点,每条边有个权值,从每个点i出发有个不经过自己走过的点的最远距离 ...
- hdu 3586 Information Disturbing(树形dp + 二分)
本文出自 http://blog.csdn.net/shuangde800 题目链接: hdu-3586 题意 给一棵n个节点的树,节点编号为1-n,根节点为1.每条边有权值,砍掉一条边要花费 ...
- BZOJ3420[POI2013]Triumphal arch&BZOJ5174[Jsoi2013]哈利波特与死亡圣器——树形DP+二分答案
题目大意: 给一颗树,1号节点已经被染黑,其余是白的,两个人轮流操作,一开始B在1号节点,A选择k个点染黑,然后B走一步,如果B能走到A没染的节点则B胜,否则当A染完全部的点时,A胜.求能让A获胜的最 ...
- hdu 3586 树形dp+二分
题目大意:给定n个敌方据点,1为司令部,其他点各有一条边相连构成一棵 树,每条边都有一个权值cost表示破坏这条边的费用,叶子节点为前线.现要切断前线和司令部的联系,每次切断边的费用不能超过上限lim ...
随机推荐
- android VLayout 全面解析
概述 前不久.阿里新开源了2个东西,Atlas和vlayout.今天我来介绍下vlayout的使用. 在介绍前,先抱怨两句,阿里放开源出来,感觉就是让我们这群人给他们找bug~~我曾遇到一个奇怪的问题 ...
- 每日英语:Is Bedtime Snacking Bad?
It's a familiar scenario in many households: Hours after dinner, the stomach growls and the refriger ...
- Windows 10 开发人员预览版中的新增功能(转自 IT之家)
Windows 10 开发人员预览版中的新增功能 在Win10预览版中安装工具与SDK后,即可着手创建Windows通用应用或先浏览目前的环境与此前相比都发生了什么变化. 应用建模 文件资源管理器: ...
- ng-class中的if else判断
ng-class中的if else判断 来自于stackoverflow的一个问题,自己刚好用到,搬过来做个标记.原问题链接 在使用ng-class时,有些时候会碰到根据是否满足条件来设置元素的样式, ...
- Ubuntu 15.04 开启远程桌面
1.安装Xrdp Windows远程桌面使用的是RDP协议,所以ubuntu上就要先安装Xrdp,终端命令行输入安装: sudo apt-get install xrdp vnc4server xba ...
- try与catch
首先要清楚,如果没有try的话,出现异常会导致程序崩溃.而try则可以保证程序的正常运行下去,比如说:try{int i = 1/0;}catch(Exception e){........}一个计算 ...
- Windows Phone 解析手机型号DeviceStatus.DeviceName
问题的产生 在WP开发过程中难免遇到统计等相关的数据回收,那么当使用DeviceStatus.DeviceName这个来获取设备的名称时经常会得到类似下面的设备信息: 可以看出这样的数据很不直 ...
- zombie处理
僵尸进程处理 程序处理(预处理) 父进程wait/waitpid. signal(SIGCHLD, SIG_IGN); 捕捉SIGCHLD,signal(SIGCHLD, handler);可获取子进 ...
- Linux安装MediaWiki
1. 编译安装libxml2 # wget http://xmlsoft.org/sources/libxml2-2.6.32.tar.gz # tar zxvf libxml2-2.6.32. ...
- PostgreSQL视频去重 图片去重系列1
PostgreSQL 在视频.图片去重,图像搜索业务中的应用 图片搜索 PostgreSQL的图像搜索插件使用了非常主流的Haar wavelet技术对图像进行变换后存储 gist 索引方法(支持pa ...