正解:二分+$dp$

解题报告:

传送门$QwQ$

一年过去了依然没有头绪,,,$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 ;
}

随机推荐

  1. ImportError: No module named tensorflow.compat.v1 忽略已经安装的某个包版本 忽略已安装版本

    ImportError: No module named tensorflow.compat.v1 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声 ...

  2. part10.3-字符驱动访问揭秘

  3. @codeforces - 1205D@ Almost All

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个 n 个点的无向树. 请在每条边上写上权值,使得对于每一 ...

  4. HZOJ 方程的解

    乍一看还以为是道水题,没想到这玩意这么难搞. 看题显然是exgcd,然而exgcd求的是一个解而不是解的个数(考试的时候不记得通解的式子然后挂了). 对于40%的数据,直接枚举计数即可. 对于另为20 ...

  5. oracle用WHERE替代ORDER BY

    ORDER BY 子句只在两种严格的条件下使用索引. ORDER BY中所有的列必须包含在相同的索引中并保持在索引中的排列顺序. ORDER BY中所有的列必须定义为非空. WHERE子句使用的索引和 ...

  6. 开源CMS比较

    PHP-CMS的发展方向:简单,易用,美观  http://www.php-cms.cn/ 看点1,服务器一键安装,鼠标点点就搞定:输入数据库参数,在服务器上点一个按钮就完成全部的安装.简单配置一下网 ...

  7. 【原生JS】制作网页头部刷新进度条

    之前的某次番啬看到油管上有这么一个进度条,当时觉得挺好玩,一直想着做一个试试,刚才弄了一下写了一个不算太好看的简陋版本,哈哈. (本博客刷新会头部会出现,因为并没有真正的参与到浏览器加载是否完整这个渲 ...

  8. DIRECTORY_SEPARATOR 与 getcwd

    DIRECTORY_SEPARATOR:目录分隔符,linux上就是’/’    windows上是’\’ ,php的内置常量是一个显示系统分隔符的命令,php的内部常量,不需要任何定义与包含即可直接 ...

  9. Js 时间戳显示和计算时间间隔

    显示时间戳 很多地方会让页面显示当前时间并实时计时功能,例:2019年5月23号 10:28::34 代码实现如下: getTime(){ var mydate = new Date(); var y ...

  10. mysql去重, 把url重复且区为空的中去掉、统计重复数据、、结果集去重合并成一行

    delete from 表名 where id not in (select d.id from (SELECT id FROM 表名 GROUP BY c1,c2,c3,c4)as d) #去重复, ...