博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 3664 (水地推)
阅读量:4973 次
发布时间:2019-06-12

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

 

题意:给出数字n,问n的所有的排列中满足Ai>i 数字恰好为 k的排列的个数。

sl : dp

dp【n】【k】 = dp【n-1】【k】*(k+1) + dp【n-1】【k-1】*(n-1-k+1);

 

为什么? 稍微一想就知道了。

 

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 #include <vector>
 5 
using 
namespace std;
 6 
const 
int MAX= 
1000;
 7 
const 
int MOD = 1e9+
7;
 8 typedef 
long 
long LL;
 9 
int dp[MAX][MAX];
10 
int main() {
11     
int n,k;
12     
while(scanf(
"
%d %d
",&n,&k)==
2) {
13         memset(dp,
0,
sizeof(dp));
14         
for(
int i=
1;i<=n;i++) dp[i][
0]=
1;
15         
for(
int i=
1;i<=n;i++) {
16             
for(
int j=
1;j<=i;j++) {
17                 dp[i][j]=((LL)dp[i-
1][j]*(j+
1)+(LL)dp[i-
1][j-
1]*(i-j))%MOD;
18             }
19         }
20         printf(
"
%d\n
",dp[n][k]);
21     }
22     
return 
0;
23 }

24 //dp[n][k]=dp[n-1][k]*(k+1)+dp[n-1][k-1]*(n-1-k+1); 

转载于:https://www.cnblogs.com/acvc/p/3908994.html

你可能感兴趣的文章
UVA - 825Walking on the Safe Side(dp)
查看>>
android大概是通过logcat拦截Log
查看>>
关于codeMirror插件使用的一个坑
查看>>
评论:人才流失强力折射出现实畸形人才观
查看>>
git服务器gitlab之搭建和使用--灰常好的git服务器【转】
查看>>
基于机器学习的web异常检测——基于HMM的状态序列建模,将原始数据转化为状态机表示,然后求解概率判断异常与否...
查看>>
分享一种需求评审的方案
查看>>
虚拟运营商10月或大面积放号 哭穷背后仍有赢家
查看>>
Server2016开发环境配置
查看>>
分布式光伏发电建设中的逆变器及其选型
查看>>
增强网络安全防御 推动物联网走向应用
查看>>
UML中关联,组合与聚合等关系的辨析
查看>>
《大数据管理概论》一3.2 大数据存储与管理方法
查看>>
PowerBuilder开发简单计算器
查看>>
怎样使用linux的iptables工具进行网络共享
查看>>
《HTML5与CSS3实战指南》——导读
查看>>
RHEL6下安装oracle 10g(一)
查看>>
Kconfig的格式
查看>>
关于Cursor的moveToFirst和moveToNext的意义
查看>>
个人--工资划分5份
查看>>