正题


题目大意

求一棵树上有多少个联通块的最大值和最小值差为k。


解题思路

其实直接用差<=k的减去差<k的就是等于k的答案。
然后枚举一个点为最大值,然后只往小编号扩张就好了(不重)。


code

#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 4000
#define XJQ 19260817
#define ll long long
using namespace std;
struct node{ll to,next;
}a[N*2];
ll ls[N],w[N],ans1,ans2,n,k,tot,x,y,in[N];
void addl(ll x,ll y)//加边
{a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot;
}
ll dp(ll x,ll fa,ll root,ll W)//dp
{ll rep=1;for(ll i=ls[x];i;i=a[i].next){int v=a[i].to;if(v==fa||w[a[i].to]>w[root]) continue;if(w[root]-w[v]>W) continue;if(v<root||w[v]<w[root])rep=(rep*(dp(v,x,root,W)+1)%XJQ)%XJQ;}return rep;
}
int main()
{scanf("%lld%lld",&n,&k);for(ll i=1;i<=n;i++)scanf("%lld",&w[i]);for(ll i=1;i<n;i++){scanf("%lld%lld",&x,&y);addl(x,y);addl(y,x);}for(ll i=1;i<=n;i++){ans1=(ans1+dp(i,i,i,k))%XJQ;if(k) ans2=(ans2+dp(i,i,i,k-1))%XJQ;}printf("%lld",(ans1-ans2+XJQ)%XJQ);
}

nssl1254-A(林下风气)【树形dp】相关推荐

  1. BNUOJ 52305 Around the World 树形dp

    题目链接: https://www.bnuoj.com/v3/problem_show.php?pid=52305 Around the World Time Limit: 20000msMemory ...

  2. [树形dp] Jzoj P5233 概率博弈

    Description 小A和小B在玩游戏.这个游戏是这样的: 有一棵n个点的以1为根的有根树,叶子有权值.假设有m个叶子,那么树上每个叶子的权值序列就是一个1->m 的排列. 一开始在1号点有 ...

  3. fwt优化+树形DP HDU 5909

    1 //fwt优化+树形DP HDU 5909 2 //见官方题解 3 // BestCoder Round #88 http://bestcoder.hdu.edu.cn/ 4 5 #include ...

  4. BZOJ 1040 ZJOI2008 骑士 树形DP

    题目大意:给定一个基环树林,每一个点上有权值,要求选择一个权值和最大的点集,要求点集中的随意两个点之间不能直接相连 最大点独立集--考虑到n<=100W,网络流铁定跑不了,于是我们考虑树形DP ...

  5. POJ 3342 树形DP+Hash

    这是很久很久以前做的一道题,可惜当时WA了一页以后放弃了. 今天我又重新捡了起来.(哈哈1A了) 题意: 没有上司的舞会+判重 思路: hash一下+树形DP 题目中给的人名hash到数字,再进行运算 ...

  6. [NC15748]旅游 树形dp基础

    菜鸡第一次接触树形dp这个东西,不过这个东西还是很好理解的(可能是因为模板题吧) 个人感觉,相比线性dp,树形dp的状态转移方程更加的直观,难点主要是在"树"的结构上比较麻烦. 题 ...

  7. 容斥 + 树形dp ---- 2021 icpc 沈阳 L Perfect Matchings

    题目链接 题目大意: 就是给你一个2n2n2n个点的完全图,从这个图里面抽出2n−12n-12n−1条边,这些边形成一颗树,现在问你剩下的图里面点进行完美匹配有多少种方案? 解题思路: 一开始被完美匹 ...

  8. 树形dp ---- gym101667 A(贪心 + 树形dp + 两个dp方程组维护)

    题目链接 题目大意: 就是一棵5e35e35e3的树,可以选择一些点,放上基站,如果uuu上的基站价值为ddd,那么距离uuu小于等于ddd的点都会被覆盖,问使得整棵树被覆盖需要的最小价值. 解题思路 ...

  9. 树形dp ---- 2018年杭电多校第二场 H travel

    题目大意: 就是给你一个带点权的树,找到3条独立互不相交的路径使得权值和最大 解题思路: 很经典的树形dp 我们设dp[root][j][k]dp[root][j][k]dp[root][j][k]表 ...

  10. 2019 GDCPC or HDU6540 树形dp[计数dp] 详解

    题目链接 题目大意: 就是给你一颗nnn个点的树,树上有mmm个关键点,你可以选择若干个关键点组成集合SSS,这个集合满足任意两点在树上的距离不超过kkk,问你有多少种选法? 解题思路: 我们考虑树形 ...

最新文章

  1. Java多线程 - AQS详解
  2. 8个实用的响应式设计框架
  3. openstack(Queens) neutron-l3-agent 代码解析1(从命令行启动到同步plugin数据)
  4. mysql查询 伪列_Mysql数据库查询到的数据设置伪列显示
  5. 英属哥伦比亚大学计算机科学,细致用心 终获英属哥伦比亚大学计算机科学专业offer...
  6. C#中 ??、 ?、 ?: 、?.、?[ ]、:
  7. Java 200+ 面试题补充② Netty 模块
  8. Java中的异常处理机制的简单原理和应用
  9. Python中的字符串比较:与== [重复]
  10. Linux vim
  11. 数据解决方案:原力大数据教你如何撰写数据分析报告
  12. 还在纠结用H264还是H265?大家早就在把VP9和H265作比较啦!
  13. Nik Collection v3.0.7 2020 Mac/Win PS/LR超强调色滤镜合集Nik插件中文版+中文教程
  14. 用谷歌浏览器模拟打开天眼查网站并爬取需要的数据
  15. 记录一下中移物联网的一面(方向:前端开发)
  16. win7共享打印机设置
  17. 当原图片加载失败时,如何让图片加载上我们默认给的图片
  18. 中国市场杂志社中国市场编辑部2022年第32期目录
  19. python求球的表面积_python-Hypar的表面积(双曲线抛物面)
  20. unity碰撞检测函数,碰撞信息获取,触发检测,使用粒子系统创建火焰,创建动画(火光闪烁),导航系统,通过导航系统控制人物移动,控制摄像机的跟随,控制角色动画播放

热门文章

  1. 百度网页移动端html,百度移动端开始用网站品牌名代替网址显示
  2. python 百度ai批量识别_Python基于百度AI的文字识别的示例
  3. 算法设计与分析——回溯法——符号三角形问题
  4. mysql innodb log_教你如何理解mysql中的innoDB log
  5. [mybatis]缓存_缓存原理图
  6. [JavaWeb-JavaScript]JavaScript_Data日期对象
  7. [C++STL]stack容器用法介绍
  8. Ubuntu上安装使用Docker
  9. 邻接表2 -试在邻接表存储结构上实现图的基本操作 del_vertex-数据结构-图-icoding
  10. Cannot find or open the PDB file