[luoguP2513] [HAOI2009]逆序对数列(DP)


传送门

f[i][j]表示前i个数,逆序对数为j的答案

则DP方程为:

f[1][0] = 1; for(i = 2; i <= n; i++) for(j = 0; j <= m; j++) for(k = j; k < j + i; k++) f[i][k] = (f[i][k] + f[i 1][j]) % p;

但是会超时

所以搞个前缀和优化一下

#include <cstdio> #include <iostream> #define N 2001 #define p 10000 int n, m; int f[N][N], sum[N][N]; inline int read() int main() printf("%d\n", f[n][m]); return 0; }

  



上一篇:[luoguP1410] 子序列(DP)

下一篇:[luoguP2736] “破锣摇滚”乐队 Raucous Rockers(DP)


DP
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图