bzoj2431逆序对数列
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2431
很容易想到n^3的做法。就是前 i 个数用第 i 个数最多能 i - 1 个逆序对,所以 i - 1 个数中属于 j ~ j - i + 1 的值都能加到前 i 个数的状态上。
#include<iostream>
#include<cstdio>
#include<cstring>
const int N=,mod=;
int n,k,dp[N][N],sm[N];
int main()
{
scanf("%d%d",&n,&k);
for(int i=;i<=n;i++)sm[i]=sm[i-]+i-;
dp[][]=;
for(int i=;i<=n;i++)
for(int j=;j<=k&&j<=sm[i];j++)
for(int l=j;l>=&&l>=j-i+;l--)
(dp[i][j]+=dp[i-][l])%=mod;
printf("%d",dp[n][k]);
return ;
}
对于 i - 1 用了一个前缀和一样的部分。可以优化掉这个循环。只需要在过程中维护一下sum。很像之前做过的某道题。
不过sum还能变成负数?这样也能算出正确答案?感觉有些奇怪。
#include<iostream>
#include<cstdio>
#include<cstring>
const int N=,mod=;
int n,k,dp[N][N],sm[N],s[N];
int main()
{
scanf("%d%d",&n,&k);
dp[][]=;
for(int i=;i<=n;i++)
{
int sum=;
for(int j=;j<=k;j++)
{
(sum+=dp[i-][j])%=mod;
if(j>=i)sum=((sum-dp[i-][j-i])%mod+mod)%mod;
dp[i][j]=sum;
}
}
printf("%d",dp[n][k]);
return ;
}
bzoj2431逆序对数列的更多相关文章
- bzoj2431逆序对数列——递推
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2431 考虑新加入一个数i,根据放的位置不同,可以产生0~i-1个新逆序对: 所以f[i][j ...
- 【BZOJ2431】逆序对数列(动态规划)
[BZOJ2431]逆序对数列(动态规划) 题面 Description 对于一个数列{ai},如果有i<j且ai>aj,那么我们称ai与aj为一对逆序对数.若对于任意一个由1~n自然数组 ...
- BZOJ2431 HAOI2009 逆序对数列 【DP】*
BZOJ2431 HAOI2009 逆序对数列 Description 对于一个数列ai{a_i}ai,如果有i<j且ai>aja_i>a_jai>aj,那么我们称aia ...
- bzoj2431:[HAOI2009]逆序对数列
单组数据比51nod的那道题还弱...而且连优化都不用了.. #include<cstdio> #include<cstring> #include<cctype> ...
- bzoj千题计划153:bzoj2431: [HAOI2009]逆序对数列
http://www.lydsy.com/JudgeOnline/problem.php?id=2431 dp[i][j] 表示i的排列,有j个逆序对的方案数 加入i+1,此时i+1是排列中最大的数, ...
- bzoj2431: [HAOI2009]逆序对数列(前缀和优化dp)
2431: [HAOI2009]逆序对数列 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 2312 Solved: 1330[Submit][Stat ...
- BZOJ 2431: [HAOI2009]逆序对数列( dp )
dp(i,j)表示1~i的全部排列中逆序对数为j的个数. 从1~i-1的全部排列中加入i, 那么可以产生的逆序对数为0~i-1, 所以 dp(i,j) = Σ dp(i-1,k) (j-i+1 ≤ k ...
- 2431: [HAOI2009]逆序对数列
2431: [HAOI2009]逆序对数列 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 954 Solved: 548[Submit][Status ...
- P2513 [HAOI2009]逆序对数列
P2513 [HAOI2009]逆序对数列 题目描述 对于一个数列{ai},如果有iaj,那么我们称ai与aj为一对逆序对数.若对于任意一个由1~n自然数组成的数列,可以很容易求出有多少个逆序对数.那 ...
随机推荐
- SQL学习笔记之项目中常用的19条MySQL优化
在写文章之前,首先感谢 飞友科技 陆老师提供的文档.. 声明一下:下面的优化方案都是基于 “ Mysql-索引-BTree类型 ” 的 0x00 EXPLAIN 做MySQL优化,我们要善用 EXPL ...
- phpstorm 代码片段使用方法
原文链接: http://wwwquan.com/show-66-121-1.html 4.Live Templates代码片断 A)我们先介绍一个代码片段最基本的功能,我们要实现的目标是在html文 ...
- 20145118 《Java程序设计》第1周学习总结
20145118 <Java程序设计>第1周学习总结 教材学习内容总结 由于寒假在家已经安装了java开发工具,所以安装过程在这里不再赘述.这一周我开始了Java初学阶段,从Java的历史 ...
- 编译 Tensorflow 1.10 + CUDA9.2 + MKL【转】
本文转自:https://www.solarck.com/compile-tensorflow-gpu.html 我的电脑系统是基于 Archlinux 的 Manjaro,软件包更新的比较激进,很早 ...
- AngularJs 表单提交按钮状态
表单属性: $invalid:未经过验证的表单,就是表单里面信息通过验证就为false,没有通过为true $valid:经过验证的表单,表单里信息验证通过为true,反之为false $dirty: ...
- Helm - Error: cannot connect to Tiller
helm2.9.1报错 [root@master ~]# helm version Client: &version.Version{SemVer:"v2.9.1", Gi ...
- python应用-掷骰子模拟-pygal
pygal安装: Linux下: pip install pygal Windows下: python -m pip install pygal 效果如图: # -*- coding: utf-8 - ...
- Docker:Err http://archive.ubuntu.com trusty InRelease & E: Unable to locate package [name] 问题
参考: Docker containers can't resolve DNS on Ubuntu 14.04 Desktop Host Unable to locate package错误解决办法 ...
- Java发送带html标签内容的邮件
package test; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; im ...
- XML_CPP_资料
1.TinyXML解析xml文档 - zhoubl668的专栏:远帆,梦之帆! - 博客频道 - CSDN.NET.html http://blog.csdn.net/zhoubl668/articl ...