hdu 5593 树形dp
来源:互联网 发布:复方雄蛾强肾胶囊淘宝 编辑:程序博客网 时间:2024/06/05 23:58
//hdu 5593 树形dp#include <cstdio>#include <algorithm>#include <iostream>#include <string.h>#include <vector>#define LL long long#define maxn 500005using namespace std;int dp[maxn][15];int k,n;vector<int> g[maxn];void dfs(int a){ dp[a][0]=1; for(int i=0;i<g[a].size();i++) { int j=g[a][i]; dfs(j); for(int ii=1;ii<=k;ii++) dp[a][ii]+=dp[j][ii-1]; }}void dfs_(int a){ for(int i=0;i<g[a].size();i++) { int j=g[a][i]; for(int ii=k;ii>=2;ii--) dp[j][ii]+=dp[a][ii-1]-dp[j][ii-2]; dp[j][1]+=dp[a][0]; dfs_(j); }}int main(){ //freopen("d:\\in.txt","r",stdin); int T; scanf("%d",&T); while(T) { int a,b; for(int i=1;i<=maxn;i++) g[i].clear(); memset(dp,0,sizeof(dp)); scanf("%d%d%d%d",&n,&k,&a,&b); for(int i=2;i<=n;i++) { int cnt; cnt=((LL)a*i+b)%(i-1)+1; g[cnt].push_back(i); } dfs(1); dfs_(1); long long int ans=0; for(int i=1;i<=n;i++) { long long int temp=0; for(int ii=0;ii<=k;ii++) temp+=dp[i][ii]; ans^=temp; } printf("%lld\n",ans); T--; } return 0;}
0 0
- HDU 5593 树形DP
- hdu 5593 树形dp
- 树形dp hdu Computer
- 【树形DP】hdu 1520
- hdu 1054 #树形DP
- hdu 4303 树形dp
- hdu 4340 树形dp
- hdu 4340 树形DP
- HDU 4340 树形DP
- hdu 4267 树形dp
- hdu 4383 树形dp
- HDU 2196 树形dp
- HDU 2196 树形dp
- hdu 1054 树形dp
- HDU 4276 树形DP
- hdu 2196 树形dp
- hdu 4044 树形dp
- hdu 1520-树形DP
- core dump设置(gdb分析)
- iOS: ARC和非ARC下使用Block与循环引用问题
- 给电脑C盘系统盘瘦身的四种方法
- hdu 5592 线段树
- C++:继承2(建筑物)
- hdu 5593 树形dp
- iOS学习__UI测试题及答案
- GreenPlum数据库的Primary/Mirror同步机制
- VM添加虚拟网卡后不能上网
- eclipse 单机版 mahout collaborative demo
- css中中float,relative,absolute的使用注意的问题
- leetCode 104. Maximum Depth of Binary Tree
- 我收藏的有关Python的电子书和资料
- android ValueAnimator ObjectAnimator