题目:
求由1到n一共n个数组成的所有数列中,逆序对个数为k的有多少个。

输入格式:
第一行为一个整数T,为数据组数。
以下T行,每行两个整数n,k,意义如题目所述。

输出格式:
对每组数据输出答案对10000取模后的结果。

样例数据
输入
1
4 1
输出
3

数据范围:
对于30%的数据,满足n<=12
对于所有数据,满足n<=1000,k<=1000,T<=10

分析:刚看到这道题第一反应是,完了,归并排序不熟,然后发现这给了这么多组,绝不是归并那么简单,考虑到从小到大每加进去一个数,这个数是最大的,放最后逆序对数不变,向前移几个,逆序对加几,很快想到dp,但是,在给负数取模的时候出错了,见代码中注释。

100分代码:

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<ctime>
#include<cmath>
#include<algorithm>
#include<cctype>
#include<iomanip>
#include<queue>
#include<set>
using namespace std;long long f[1010][1010],a[1010][1010];
int n[20],k[20],r,T;int getint()
{int sum=0,f=1;char ch;for(ch=getchar();(ch<'0'||ch>'9')&&ch!='-';ch=getchar());if(ch=='-'){f=-1;ch=getchar();}for(;ch>='0'&&ch<='9';ch=getchar())sum=(sum<<3)+(sum<<1)+ch-48;return sum*f;
}int main()
{freopen("permut.in","r",stdin);freopen("permut.out","w",stdout);T=getint();for(int i=1;i<=T;++i){n[i]=getint();k[i]=getint();r=max(r,n[i]);}f[2][1]=1;for(int i=2;i<=r;++i)f[i][0]=1;for(int i=3;i<=r;++i){for(int j=1;j<=1000;++j){if(j-i+1<=0)f[i][j]=(f[i][j]%10000+f[i][j-1]%10000+f[i-1][j]%10000)%10000;elsef[i][j]=((f[i][j]+f[i][j-1]+f[i-1][j]-f[i-1][j-i])%10000+10000)%10000;//在这里,要减去一个数,有可能前两个正数取模之后很小,而要减的数取模后依然很大,就出现了负数,需要加上10000再%10000保险}}for(int i=1;i<=T;++i)printf("%I64d\n",f[n[i]][k[i]]);return 0;
}

本题结。

[NOIP2017模拟]permut相关推荐

  1. JZOJ 5234. 【NOIP2017模拟8.7A组】外星人的路径

    Description 有一个外星人控制了你的大脑.一开始你处于原点(0,0).外星人有一个由(R,U,D,L)组成的长度为M 的操作序列,分别代表(右,上,下,左). 平面上有N 个关键点,每当外星 ...

  2. NOIP2017模拟赛总结(2017.10.30-2017.11.1)

    第三篇博客,放上2017.10.30-2017.11.1的题. 2017.10.30 Problem A 题目大意: 有一排nnn棵果树和一个容量为sss的果篮,从前往后摘果,如果当前果树的果子数量不 ...

  3. [NOIP2017模拟]跳高

    题目背景 SOURCE:NOIP2015-HN-CJZX 题目描述 r64 喜欢跳高.但是他的技术并不好,所以他想好好练习一下. 练习场上有一个个高度不一定一样的平台,如图所示.最底下的是地板,高度为 ...

  4. JZOJ.5234【NOIP2017模拟8.7】外星人的路径

    Description 有一个外星人控制了你的大脑.一开始你处于原点(0,0).外星人有一个由(R,U,D,L)组成的长度为M 的操作序列,分别代表(右,上,下,左). 平面上有N 个关键点,每当外星 ...

  5. JZOJ 5344. 【NOIP2017模拟9.3A组】摘果子

    Description Input Output Sample Input 7 9 39 6 13 2 22 6 7 4 -19 5 28 6 -17 1 2 1 3 2 4 1 5 4 6 2 7 ...

  6. JZOJ 5264. 【NOIP2017模拟8.12A组】化学

    Description Input Output Sample Input 3 10 1 2 10 Sample Output 5 Data Constraint Hint Solution 看到数据 ...

  7. JZOJ 5263. 【NOIP2017模拟8.12A组】分手是祝愿

    Description Input Output Sample Input 2 2 15 19 3 30 40 20 Sample Output 285 2600 Data Constraint So ...

  8. JZOJ 5244. 【NOIP2017模拟8.8A组】Daydreamin ' (daydream)

    Description worldwideD最近有午睡的习惯~某日中午,他做了一个梦:梦见有一个怪人,她去一个岛上住N+1天(编号为0到N).这是在大洋中的岛,每天要么是晴天,要么刮台风.她到达岛的第 ...

  9. JZOJ 5236. 【NOIP2017模拟8.7A组】利普希茨

    Description Input 输入文件名为lipschitz.in. 第一行一个整数n. 接下来一行n个整数,描述序列A. 第三行一个数q . 接下来q行,每行三个整数.其中第一个整数type表 ...

最新文章

  1. python怎么输出文本_python输出语句怎么用
  2. Linux下Scala(2.12.1)安装
  3. .net 无法通过嵌套类型访问外部类型的非静态成员-解决方案
  4. NOIP 2017 提高组 K: 奶酪 (SPFA || 并查集)
  5. Lintcode 973 解题思路及c++代码
  6. unity保存运行时的操作_Unity运行时保存prefab的方法一则
  7. 机器视觉和Tesseract
  8. 智能手机计步算法c语言实现,【转载】智能手机计步器算法的实现
  9. 程序员你真的理解final关键字吗?
  10. 九度OJ 1005 Graduate Admission
  11. 如何添加WebService调用时的用户认证
  12. oracle session status killed,进程状态为KILLED的进程如何杀掉
  13. 一致性 hash 算法(consistent hashing)
  14. 安装ISE.14.7后仿真时遇到的问题与解决
  15. Allegro gerber文件路径设定
  16. 如何做好一场技术分享,100%纯实用技巧输出
  17. javascript基础常识问答(七)
  18. 结合python使用ffmpeg将批量ts文件合成mp4。
  19. python实现查收电子文件作业上交情况(完更)
  20. 施一公演讲太精彩!让科研迷茫的人少走很多弯路

热门文章

  1. Choco-slover的使用
  2. 基于MATLAB的小波阈值去噪
  3. canal - 数据同步工具
  4. 专升本英语——语法知识——高频语法——第二节 非谓语动词【学习笔记】
  5. 数学符号及读法大全(超经典)
  6. `inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead.
  7. Linux【shell】 shell编程
  8. 让你在[三分钟自我介绍]中突出自我
  9. OLAP引擎调研 —— OLAP引擎性能对比分析
  10. 《实用C++》第11课:if 语句实现逻辑运算与冒号表达式