[BZOJ2431][HAOI2009]逆序对数列(DP+前缀和)
来源:互联网 发布:自学唱歌的软件 编辑:程序博客网 时间:2024/04/29 20:01
在这里可以发现,逆序对的个数只与每个数的相对大小有关,而与真实数值无关。根据这一点,建立
对于转移,可以想到枚举第
即
在实现上,转移的同时记录下前缀和以快速计算。
代码:
#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;inline int read() { int res = 0; bool bo = 0; char c; while (((c = getchar()) < '0' || c > '9') && c != '-'); if (c == '-') bo = 1; else res = c - 48; while ((c = getchar()) >= '0' && c <= '9') res = (res << 3) + (res << 1) + (c - 48); return bo ? ~res + 1 : res;}const int N = 1005, PYZ = 1e4;int n, K, f[N << 1][N << 1], sum[N];int main() { int i, j; n = read(); K = read(); f[1][0] = sum[1] = 1; for (j = 2; j <= K + 1; j++) sum[j] = 1; for (i = 2; i <= n; i++) { int mxf = min(K, (i * (i - 1)) >> 1); for (j = 0; j <= mxf; j++) f[i][j] = (sum[j + 1] - sum[max(0, j - i + 1)] + PYZ) % PYZ; sum[0] = 0; for (j = 0; j <= K; j++) sum[j + 1] = (sum[j] + f[i][j]) % PYZ; } printf("%d\n", f[n][K]); return 0;}
阅读全文
0 0
- [BZOJ2431][HAOI2009]逆序对数列(DP+前缀和)
- [BZOJ2431][HAOI2009][DP][前缀和]逆序对数列
- bzoj2431:[HAOI2009]逆序对数列[DP]
- BZOJ2431: [HAOI2009]逆序对数列 DP
- 【BZOJ2431】【HAOI2009】逆序对数列 DP
- BZOJ2431(HAOI2009)[逆序对数列]--DP
- bzoj2431[HAOI2009]逆序对数列
- bzoj2431[HAOI2009]逆序对数列
- [BZOJ2431] [HAOI2009]逆序对数列
- BZOJ2431: [HAOI2009]逆序对数列
- BZOJ2431 [HAOI2009]逆序对数列
- bzoj2431: [HAOI2009]逆序对数列
- bzoj2431: [HAOI2009]逆序对数列
- 【BZOJ2431】【HAOI2009】逆序对数列
- bzoj2431 [HAOI2009]逆序对数列
- [AHOI2009] BZOJ2431 逆序对数列-动态规划-前缀和优化
- BZOJ 2431: [HAOI2009]逆序对数列 dp
- 【BZOJ2431】逆序对数列(动态规划)
- HDU-2017 多校训练赛10-1010-Schedule
- SpringMVC获取url参数的方法
- 数学-HDU4790
- mybatis-generator生成model和dao层代码
- Linux下安装libsodium,启用ss的chacha20高级加密
- [BZOJ2431][HAOI2009]逆序对数列(DP+前缀和)
- Hi,我们再来聊一聊Java的单例吧
- java 包
- 第一个简陋版贪吃蛇终于成功了
- 《数据库系统概念(第六版)》读书笔记——第三章:SQL
- Hdu 1024 Max Sum Plus Plus(DP)
- elastic-job 编译打包错误解决
- ACdream 1114 Number theory (莫比乌斯反演)
- Mac 系统基于jdk1.8编译hadoop2.7.4和hadoop2.8.1