[NOIP2017模拟]permut
题目:
求由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相关推荐
- JZOJ 5234. 【NOIP2017模拟8.7A组】外星人的路径
Description 有一个外星人控制了你的大脑.一开始你处于原点(0,0).外星人有一个由(R,U,D,L)组成的长度为M 的操作序列,分别代表(右,上,下,左). 平面上有N 个关键点,每当外星 ...
- NOIP2017模拟赛总结(2017.10.30-2017.11.1)
第三篇博客,放上2017.10.30-2017.11.1的题. 2017.10.30 Problem A 题目大意: 有一排nnn棵果树和一个容量为sss的果篮,从前往后摘果,如果当前果树的果子数量不 ...
- [NOIP2017模拟]跳高
题目背景 SOURCE:NOIP2015-HN-CJZX 题目描述 r64 喜欢跳高.但是他的技术并不好,所以他想好好练习一下. 练习场上有一个个高度不一定一样的平台,如图所示.最底下的是地板,高度为 ...
- JZOJ.5234【NOIP2017模拟8.7】外星人的路径
Description 有一个外星人控制了你的大脑.一开始你处于原点(0,0).外星人有一个由(R,U,D,L)组成的长度为M 的操作序列,分别代表(右,上,下,左). 平面上有N 个关键点,每当外星 ...
- 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 ...
- JZOJ 5264. 【NOIP2017模拟8.12A组】化学
Description Input Output Sample Input 3 10 1 2 10 Sample Output 5 Data Constraint Hint Solution 看到数据 ...
- 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 ...
- JZOJ 5244. 【NOIP2017模拟8.8A组】Daydreamin ' (daydream)
Description worldwideD最近有午睡的习惯~某日中午,他做了一个梦:梦见有一个怪人,她去一个岛上住N+1天(编号为0到N).这是在大洋中的岛,每天要么是晴天,要么刮台风.她到达岛的第 ...
- JZOJ 5236. 【NOIP2017模拟8.7A组】利普希茨
Description Input 输入文件名为lipschitz.in. 第一行一个整数n. 接下来一行n个整数,描述序列A. 第三行一个数q . 接下来q行,每行三个整数.其中第一个整数type表 ...
最新文章
- python怎么输出文本_python输出语句怎么用
- Linux下Scala(2.12.1)安装
- .net 无法通过嵌套类型访问外部类型的非静态成员-解决方案
- NOIP 2017 提高组 K: 奶酪 (SPFA || 并查集)
- Lintcode 973 解题思路及c++代码
- unity保存运行时的操作_Unity运行时保存prefab的方法一则
- 机器视觉和Tesseract
- 智能手机计步算法c语言实现,【转载】智能手机计步器算法的实现
- 程序员你真的理解final关键字吗?
- 九度OJ 1005 Graduate Admission
- 如何添加WebService调用时的用户认证
- oracle session status killed,进程状态为KILLED的进程如何杀掉
- 一致性 hash 算法(consistent hashing)
- 安装ISE.14.7后仿真时遇到的问题与解决
- Allegro gerber文件路径设定
- 如何做好一场技术分享,100%纯实用技巧输出
- javascript基础常识问答(七)
- 结合python使用ffmpeg将批量ts文件合成mp4。
- python实现查收电子文件作业上交情况(完更)
- 施一公演讲太精彩!让科研迷茫的人少走很多弯路
热门文章
- Choco-slover的使用
- 基于MATLAB的小波阈值去噪
- canal - 数据同步工具
- 专升本英语——语法知识——高频语法——第二节 非谓语动词【学习笔记】
- 数学符号及读法大全(超经典)
- `inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead.
- Linux【shell】 shell编程
- 让你在[三分钟自我介绍]中突出自我
- OLAP引擎调研 —— OLAP引擎性能对比分析
- 《实用C++》第11课:if 语句实现逻辑运算与冒号表达式