[DP] ZROI 2017提高1 T2.给 Ca
2017-10-06 16:46
423 查看
DP状态的设计比较巧妙,考虑树按dfs序的顺序生成的过程,设 f[i][j] 表示放了 i 个节点,根到当前节点向左走 j 次,的方案数。
转移就是,再往左放一个,或者回到最近的向左走的节点的父亲,在右儿子位置放。
f[i+1][j+1]←f[i][j], f[i+1][j−1]←f[i][j]
转移就是,再往左放一个,或者回到最近的向左走的节点的父亲,在右儿子位置放。
f[i+1][j+1]←f[i][j], f[i+1][j−1]←f[i][j]
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn=5005,MOD=998244353; int n,m,f[2][maxn],ans; void Addition(int &x,int y){ if((x+=y)>MOD) x-=MOD; } int main(){ freopen("ca.in","r",stdin); freopen("ca.out","w",stdout); scanf("%d%d",&m,&n); m--; f[1][0]=1; for(int i=1;i<=2*n-1;i++){ if(i&1) printf("%d\n",f[i&1][0]); memset(f[(i&1)^1],0,sizeof(f[(i&1)^1])); for(int j=0;j<=m;j++){ Addition(f[(i&1)^1][j+1],f[i&1][j]); if(j) Addition(f[(i&1)^1][j-1],f[i&1][j]); } } return 0; }
相关文章推荐
- [DP] ZROI 2017提高 5 T2. 石头剪刀布
- [DP] ZROI 2017 提高6 T2 异或统计
- [补集转化 DP] ZROI 2017提高7 强军战歌
- [DP] ZROI 2017 提高3 T3 建筑
- [数位DP] ZROI 2017 提高3 T1 树状数组
- JZOJ5415. 【NOIP2017提高A组集训10.22】公交运输 DP
- SSL2792 2017年10月25日提高组T2 数字问题(数位dp)
- NOIP2017 Day2 T2 宝藏(状压DP)
- [表达式求值 矩阵乘法] ZROI 2017提高10A. Calc
- SSL2759 2017年10月6日提高组T2 挖矿(dp)
- [高维前缀和] ZROI 2017提高2 World Of Our Own
- SSl2794 2017年10月26日提高组T2 Dark(dp)
- JZOJ5377. 【NOIP2017提高A组模拟9.19】开拓 DP
- JZOJ5379. 【NOIP2017提高A组模拟9.21】Victor爱数字 数位DP
- [DP] 计蒜客 2017 NOIP模拟赛(二)Day2 T2.紫色百合
- [数学杂题 位运算] ZROI 2017 提高6 T1 异或统计
- SSL2674 2017年8月9日提高组T2 覆盖(dp)
- jzoj5408 【NOIP2017提高A组集训10.21】Dark (巧设状态的DP)
- 2017年10月23日提高组T2 灵知的太阳信仰 单调队列优化dp
- 【ZJOI2017 Round1练习】D8T2 sequence(DP)