SSL-ZYC 逆序统计
2018-02-08 09:15
239 查看
题目大意:
求1到n这n个数中m个逆序对的方案总数。(答案取摸10000)
思路:
一道DP题。
由于数据规模很大,所以要用滚动数组。
我们可以发现这道题是有规律的。
这道题有两个转移方程:
求1到n这n个数中m个逆序对的方案总数。(答案取摸10000)
思路:
一道DP题。
由于数据规模很大,所以要用滚动数组。
我们可以发现这道题是有规律的。
这道题有两个转移方程:
(1)if (j<=i) f[i&1][j]=f[(i+1)&1][j]+f[i&1][j-1]
(2)if (j>i) f[i&1][j]=f[(i+1)&1][j]+f[i&1][j-1]-f[(i+1)&1][j-i]
附上代码:#include <cstdio> #include <algorithm> using namespace std; int f[2][5001],m,n; int main() { scanf("%d%d",&n,&m); f[0][0]=1; for (int i=1;i<=n;i++) for (int j=0;j<=m;j++) if(j>0) { if (j<i) f[i&1][j]=(f[(i+1)&1][j]%10000+f[i&1][j-1]%10000)%10000; else f[i&1][j]=((f[(i+1)&1][j]%10000+f[i&1][j-1]%10000)%10000-f[(i+1)&1][j-i]%10000)%10000; //转移方程,要取摸10000 } else f[i&1][j]=f[(i+1)&1][j]%10000; f[n&1][m]=(f[n&1][m]+10000)%10000; printf("%d\n",f[n&1][m]); return 0; }
相关文章推荐
- SSL-ZYC 奇数统计
- SSL-ZYC 1500 最短路上的统计
- POJ-2299 Ultra-QuickSort 逆序对统计
- SSL-ZYC 数池塘
- 用顺序统计树(红黑树扩张)解决逆序对POJ1804
- SSL-ZYC 1454 找石油
- SSL-ZYC 1682 1764 最短网络
- POJ 2299 - Ultra-QuickSort 统计逆序对
- SSL-ZYC 牛车
- SSL-ZYC 1763 观光旅游
- 在命令行任意输入一组数字(0~9),然后统计这组数据中每个数字出现的个数,然后将统计个数逆序输出
- SSL-ZYC 1612 最优布线问题
- SSL-ZYC 1624 小萨的烦恼
- SSL-ZYC 1760 商店选址问题
- (ssl 1500)最短路上的统计
- SSL-ZYC 邮票
- SSL-ZYC 1764 最小生成树Ⅱ
- SSL_1063_统计数字_hash
- 归并排序及统计数组逆序对
- SSL-ZYC 公牛数学