$bzoj3872\ [Poi2014]\ Ant\ colony$ 二分+$dp$
正解:二分+$dp$
解题报告:
一年过去了依然没有头绪,,,$gql$的$NOIp$必将惨败了$kk$.
考虑倒推,因为知道知道除数和答案,所以可以推出被除数的范围,然后一路推到叶子节点就成$QwQ$
$over$
嗷注意一个细节是有可能乘爆,所以每次和$m_max$取个$min$就成$QwQ$
#include<bits/stdc++.h>
using namespace std;
#define il inline
#define gc getchar()
#define int long long
#define t(i) edge[i].to
#define ri register int
#define rc register char
#define rb register bool
#define rp(i,x,y) for(ri i=x;i<=y;++i)
#define my(i,x,y) for(ri i=x;i>=y;--i)
#define e(i,x) for(ri i=head[x];i;i=edge[i].nxt) const int N=+;
int n,head[N],ed_cnt,g,K,m[N],frx,fry,in[N],l[N],r[N],inf,as;
struct ed{int to,nxt;}edge[N<<]; il int read()
{
rc ch=gc;ri x=;rb y=;
while(ch!='-' && (ch>'' || ch<''))ch=gc;
if(ch=='-')ch=gc,y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=gc;
return y?x:-x;
}
il void ad(ri x,ri y){edge[++ed_cnt]=(ed){x,head[y]};head[y]=ed_cnt;++in[x];}
void dfs(ri nw,ri fa)
{
e(i,nw)
if(t(i)^fa)
l[t(i)]=min(1ll*l[nw]*(in[nw]-),inf+),r[t(i)]=min(1ll*(r[nw]+)*(in[nw]-)-,inf),dfs(t(i),nw);
}
il int fd1(ri x){return lower_bound(m+,m++g,x)-m-;}
il int fd2(ri x){ri tmp=upper_bound(m+,m++g,x)-m;return m[tmp]==x?tmp:tmp-;} signed main()
{
freopen("3872.in","r",stdin);freopen("3872.out","w",stdout);
n=read();g=read();K=read();rp(i,,g)m[i]=read();sort(m+,m++g);inf=m[g];
rp(i,,n-){ri x=read(),y=read();ad(x,y);ad(y,x);if(i==)frx=x,fry=y;}
l[frx]=r[frx]=l[fry]=r[fry]=K;dfs(frx,fry);dfs(fry,frx);
rp(i,,n)if(in[i]==)as+=fd2(r[i])-fd1(l[i]);;printf("%lld\n",1ll*as*K);
return ;
}
随机推荐
- Jmeter xpath处理器
- Laravel如何引用第三方(自定义)库
想做一个网页抓取的功能,底层使用php的laravel框架. 这里使用phpQuery库来实现网页抓取,这里不做介绍. 需要了解的可以百度,或者等我填坑. 下载最新版本可以前往https://code ...
- 洛谷 1602 Sramoc问题
Description 话说员工们整理好了筷子之后,就准备将快餐送出了,但是一看订单,都傻眼了:订单上没有留电话号码,只写了一个sramoc(k,m)函数,这什么东西?什么意思?于是餐厅找来了资深顾问 ...
- adblock自定义规则
click.admaster.cn/* cm.baidu.com/* cm.pos.baidu.com/* cpro.baidu.com/* cpro.baidustatic.com/* dup.ba ...
- POJ 3159 Candies、
题意:n个小孩,m个比较(给你两个孩子代号a,b.然后c意味着a比b最多只能少c个糖果),问1和n之间差距最大的糖果数量. 思路:这是一个差分约束思路 不懂得:传送门, 转化一下就是一个SPFA求最短 ...
- HTML静态网页--表单验证和事件
1.表单验证<form></form> (1).非空验证(去空格) (2).对比验证(跟一个值对比) (3).范围验证(根据一个范围进行判断) (4).固定格式验证:电话号码, ...
- lodap问题集锦
1.分页打印时,同一行显示在不同页内 ,调整行分页粒度 LODOP.SET_PRINT_STYLEA(0, "TableRowThickNess", 40);
- asp.net MVC 模板定制
模板存放位置:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC ...
- git分支合并及冲突解决
小明在愉快的敲代码 vim ok 他在ok里敲了simachanping git commit -am "commit first version by xiaoming" 然后这 ...
- poj2632 累死了
题意: 给定A*B的格子,放入N个机器人,每个机器人初始位置及朝向给定.给定M条指令.指令类型有三种: 1.L:左转90° 2.R:右转90° 3.F:前进一格 问执行指令过程中 ...