這道題我們可以套路的設置f[i]為當前節點為根的滿足條件方案數,然後枚舉根,計算必須包含當前根的方案

但是似乎很難計算

所以我們可以搞一個前綴和,將聯通塊的最大數和最小數相減<=k的方案和<=k-1的方案計算一遍,減去就是答案

則f[i]=(f[son]+1)*… (f[son]滿足條件)

這樣子我們只需要判斷son是否滿足條件,因為son的所有子樹已經判斷過了

但是這樣可能會算重:當有多個節點的值與當前節點的值相同,都會算一遍

於是我們可以硬點只有根標號小的節點才會計算1次,大的直接跳過

代碼:

#include<bits/stdc++.h>
using namespace std;
#define jzm 19260817ll
typedef long long ll;
ll n,k,a[4010],v[8010],nxt[8010],h[4010],ec;
void add(ll x,ll y){v[++ec]=y;nxt[ec]=h[x];h[x]=ec;}
ll dfs(ll x,ll fa,ll p){
	ll ans=1;
	for(ll i=h[x];i;i=nxt[i])
		if(v[i]!=fa&&((a[v[i]]<a[p]||(a[v[i]]==a[p]&&p<v[i]))&&a[p]-a[v[i]]<=k))
			ans=(ans*(dfs(v[i],x,p)+1))%jzm;
	return ans;
}
int main(){
	freopen("lkf.in","r",stdin);
	freopen("lkf.out","w",stdout);
	scanf("%lld%lld",&n,&k);
	for(ll i=1;i<=n;i++)
		scanf("%lld",&a[i]);
	for(ll i=1;i<n;i++){
		ll x,y;
		scanf("%lld%lld",&x,&y);
		add(x,y);add(y,x);
	}
	ll ans1=0;
	for(ll i=1;i<=n;i++)
		ans1=(ans1+dfs(i,0,i))%jzm;
	if(k!=0){
		k--;
		for(ll i=1;i<=n;i++)
			ans1=(ans1-dfs(i,0,i)+jzm)%jzm;
	}
	printf("%lld",ans1);
}

jzoj5913的更多相关文章

  1. <JZOJ5913>林下风气

    快乐dp 反正考场写挂 #include<cstdio> #include<cstring> #include<cctype> #include<iostre ...

随机推荐

  1. AOP不起作用的原因之一

    在-servlet.xml配置context:component-scan后,Spring在扫描包时,会将所有带 @Service注解的类都扫描到容器中.而-servlet.xml和applicati ...

  2. dedecms目录说明

    1.有多个common.inc.php文件,注意引入的是哪一个,引入以后,里面的常量才可以用: 2.路径向上跳转 require_once('../../plus/phpexcel/PHPExcel. ...

  3. Java NIO系列教程(四) Scatter 和 Gather

    Java NIO系列教程(四) Scatter 和 Gather Java NIO 开始支持 scatter/gather,scatter/gather 用于描述从 Channel(译者注:Chann ...

  4. oracle去重试验

    http://blog.csdn.net/lunajiao/article/details/76014488

  5. 【Linux】MySQL配置

    安装环境/工具  Linux( centOS 版) MySQL(MySQL-5.6.28-1.el7.x86_64.rpm-bundle.tar版) MySQL的目录结构 安装已经说过了,这里不再说了 ...

  6. css3美化滚动条样式

    1.改变浏览器默认的滚动条样式 ::-webkit-scrollbar-track-piece { //滚动条凹槽的颜色,还可以设置边框属性 background-color:#f8f8f8; } : ...

  7. spring mvc 文档哪里有

    官方: http://docs.spring.io/spring/docs/4.2.0.RC1/spring-framework-reference/htmlsingle/#spring-web Th ...

  8. SAX, JSON , DOM 数据解析

    //解析:将特定数据格式(如:xml,json)中提取出来所需的内容 //SAX: Simply API for XML, xml解析的一种方式,逐行解析,读一行内容,取一行内容,速度慢,占用内存小, ...

  9. MySQL性能调优与架构设计——第12章 可扩展设计的基本原则

    第12章 可扩展设计的基本原则 前言: 随着信息量的飞速增加,硬件设备的发展已经慢慢的无法跟上应用系统对处理能力的要求了.此时,我们如何来解决系统对性能的要求?只有一个办法,那就是通过改造系统的架构体 ...

  10. 我的成长比价系列:java web开发过程中遇到的错误一:sql语句换行错误

    字符串换行导致的错误,确切的说是马虎的错误,自己在编写简单的servlet项目时,在StudentDao.java 中的  查询语句:String  sql= "SELECT Type,fl ...