博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(寒假集训) 不等数列
阅读量:6769 次
发布时间:2019-06-26

本文共 922 字,大约阅读时间需要 3 分钟。

不等数列

时间限制: 1 Sec  内存限制: 256 MB

提交: 9  解决: 9
[][][]

题目描述

将1到n任意排列,然后在排列的每两个数之间根据他们的大小关系插入“>”和“<”。问在所有排列中,有多少个排列恰好有k个“<”。答案对2012取模。

输入

第一行2个整数n,k。

输出

一个整数表示答案。

样例输入

5 2

样例输出

66

提示

对于30%的数据:n <= 10

对于100%的数据:k < n <= 1000。

【分析】dp[i][j]表示 i 个数中有 j 个 <的方案数。

 

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define inf 2e9#define met(a,b) memset(a,b,sizeof a)typedef long long ll;using namespace std;const int N = 2e3+5;const int M = 4e5+5;int n,m,k,sum,ans;ll dp[N][N];int main(){ scanf("%d%d",&n,&k); dp[2][1]=1; for(int i=1;i<=n;i++)dp[i][0]=1; for(int i=3;i<=n;i++){ for(int j=1;j<=min(i-1,k);j++){ dp[i][j]=(dp[i-1][j]*(j+1)+dp[i-1][j-1]*(i-j))%2012; } } printf("%lld\n",dp[n][k]); return 0;}

 

转载于:https://www.cnblogs.com/jianrenfang/p/6270646.html

你可能感兴趣的文章
国外主流公有云服务厂商优劣势一览
查看>>
滴滴出行在智慧交通领域为自己设定的三个短期目标
查看>>
微信VS支付宝,移动支付的战争久燃不息
查看>>
红帽推出基于开放标准红帽虚拟化4
查看>>
从 Nginx 默认不压缩 HTTP/1.0 说起
查看>>
不能忍!花钱买的视频网站VIP账号别人在用,都是撞库惹的祸
查看>>
IndexedDB简介与入门
查看>>
十大计算机恶意软件排行榜发布
查看>>
大数据在医疗领域的七大应用
查看>>
ELRepo - Enterprise Linux (RHEL、CentOS 及 SL)的社区仓库
查看>>
如何确保云API远离黑客攻击
查看>>
热点推荐:为什么JVM需要GC
查看>>
程序员不要输在起跑线上 这4个问题帮你迅速入行
查看>>
大数据平台Docker应用之路
查看>>
未来智能家居的新玩法;光学和音频的碰撞
查看>>
给ASP.NET MVC及WebApi添加路由优先级
查看>>
云到云数据备份:如何选择供应商
查看>>
光纤知识—室外光缆
查看>>
如何安装Debian的非systemd复刻版本Devuan Linux
查看>>
在互联网+时代 穿戴设备面临的挑战和问题是什么?
查看>>