CF486D Valid Sets(枚举+树形dp)
来源:互联网 发布:js获取当前时间格式化 编辑:程序博客网 时间:2024/06/06 03:54
我还在想没给定根怎么能树形dp呢。。。我们枚举每一个i来当跟,然后每次统计过根且a[i]为最大值的方案数。考虑到如果a[i]!=a[j],则一定不会重复计数。那可能重复的就是a[i]==a[j]的情况,那我们强制规定一个方向,让标号小的能访问到相等的大的即可。这样就不会重复计数了。
#include <bits/stdc++.h>#define ll long long#define mod 1000000007#define N 2010#define inf 0x3f3f3f3fusing namespace std;inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f;}int d,n,a[N],h[N],num=0,ans=0;bool vis[N];struct edge{ int to,next;}data[N<<1];int dfs(int x,int rt){ ll res=1;vis[x]=1; for(int i=h[x];i;i=data[i].next){ int y=data[i].to; if(vis[y]||a[y]>a[rt]||a[y]<a[rt]-d) continue; if(a[y]==a[rt]&&y<rt) continue; res+=(ll)res*dfs(y,rt)%mod;res%=mod; }return res;}int main(){// freopen("a.in","r",stdin); d=read();n=read();for(int i=1;i<=n;++i) a[i]=read(); for(int i=1;i<n;++i){ int x=read(),y=read(); data[++num].to=y;data[num].next=h[x];h[x]=num; data[++num].to=x;data[num].next=h[y];h[y]=num; } for(int i=1;i<=n;++i){//枚举以i为根,且a[i]为最大值,过根的方案数 memset(vis,0,sizeof(vis));ans=(ans+dfs(i,i))%mod; }printf("%d\n",ans); return 0;}
阅读全文
0 0
- CF486D Valid Sets(枚举+树形dp)
- codeforces486 D. Valid Sets 树形dp
- Codeforces Round #277 (Div. 2) D. Valid Sets (树形DP)
- Codeforces 486D Valid Sets 树形dp+计数
- codeforces 486D D. Valid Sets(树形dp)
- codeforces 486D D. Valid Sets(树形dp)
- Codeforces 486D Valid Sets(树形)
- CodeForces - 486D Valid Sets(树上的DP计数)
- WOJ 29 Werewolf(树形DP+枚举)
- codeforces 486d Valid Sets dp
- Codeforces 486D Valid Sets【树型Dp】
- poj 3140 Contestants Division(树形dp? dfs计数+枚举)
- UvaLive 6661 Equal Sum Sets 二进制枚举/DP
- HDU 3586 Information Disturbing (枚举+树形DP)
- Codeforces 486D Valid Set 树形DP+计数
- poj1155 (树形dp)
- poj1947(树形dp)
- hdu2196Computer(树形dp)
- mem_init
- Deepin 安装Android-studio
- Oracle 缓冲区命中率低的分析及解决办法
- psql copy命令导入导出数据
- Spark错误汇总
- CF486D Valid Sets(枚举+树形dp)
- 滚轮事件(wheel)与Transform实现图片上下翻滚
- c语言第一周作业
- 第一篇博客之Android编译环境配置---离线Gradle
- 学习水晶头制作
- 顺序表的相关操作
- Dubbo学习总结
- Qt5学习-模板库、工具类、控件-1
- POJ 1469COURSES