C
来源:互联网 发布:轩辕剑坐骑10进阶数据 编辑:程序博客网 时间:2024/05/17 03:43
题目链接
题意:
给出n和m,我们有一个由1~n组成的n个数字的数列a[],如果a[i]>i,我们就把ans++,我们要求出ans==m的数列有多少个。
思路:
直接按照dp的思想,我们考虑每增加一个数那么它只会是E-VAL的值要么不变 要么增加1
那么dp[i][j]就表示第i个数j E-val 的数列个数,可得出此动态转移方程
dp[i][j]=(dp[i][j]+(j+1)*dp[i-1][j])%mod;
dp[i][j+1]=(dp[i][j+1]+(i-j-1)*dp[i-1][j])%mod;
然后处理下边界即可
#include<bits/stdc++.h>#define mod 1000000007using namespace std;typedef long long ll;const int maxn=1111;ll dp[maxn][maxn];void init(){memset(dp,0,sizeof(dp));for(int i=1;i<maxn;i++){for(int j=0;j<i;j++){if(j==0)dp[i][j]=1;elsedp[i][j]=(dp[i][j]+(j+1)*dp[i-1][j])%mod;if(j<=i-2)dp[i][j+1]=(dp[i][j+1]+(i-j-1)*dp[i-1][j])%mod;}}return ;}int main(){int n,k;init();while(~scanf("%d %d",&n,&k)){printf("%lld\n",dp[n][k]);}return 0;}
1 0
- c
- c
- c
- c
- C
- c
- c
- c
- C+
- c
- C
- c
- c
- c
- C
- C
- c
- C
- 编译GDAL步骤(64位)
- Android BroadcastReceiver的注册方式静态和动态
- 利用URL Protocol实现网页调用本地应用程序
- [pytorch] 利用batch normalization对Variable进行normalize/instance normalize
- IntelliJ IDEA 使用maven 集成SpringMVC+Hibernate
- C
- 连接和断开扫描枪时,屏幕都会刷新,造成临时加载的数据丢失
- Tomcat
- 说说 Google 软件测试开发工程师的工作内容
- 功能测试用例的设计方法与执行测试
- 树形dp回顾Anniversary party
- spring mvc详解
- JavaScript 自制模态对话框
- HDU 1166 敌兵布阵 【简单的树状数组||线段树】