sicily 1687. Permutation
来源:互联网 发布:完美假期周晨曦淘宝店 编辑:程序博客网 时间:2024/06/05 19:43
http://soj.sysu.edu.cn/show_problem.php?pid=1687
因为每次加进去的数是最大的,所以只有两种情况,一种就是加入之后个数不变,另一种就是+1
例子: 1<2<4>3
加入5后不变的情况是把5加入处于小于号的地方或者最左边,有 5>1<2>4<3 , 1<5>2>4<3, 1<2<5>4>3 三种情况 即小于号的个数+1
加入5后+1的情况是把5加入处于大于号的地方或者最右边,有 1<2<4<5>3 , 1<2<4>3<5 两种情况 即大于号的个数+1
那么n个数的有k个小于号的数是从n-1个数中有k-1个小于号的数和k个小于号的数得来
于是有 a[n][k] = a[n-1][k-1]*(n-k)+a[n-1][k]*(k+1)
注意有个坑,输入可能会有n == k的情况,a[n][k] = 0,也不能算是坑吧,题目有写k可能=100。。。。
#include <iostream>using namespace std;int main(){int n,k;int a[101][101] = {0};a[1][0] = 1;a[1][1] = 0;for(int i = 2;i < 101;i++){a[i][0] = 1;a[i][i] = 0;for(int j = 1;j < i;j++){a[i][j] = a[i-1][j-1]*(i-j)+a[i-1][j]*(j+1);if(a[i][j] >= 2007) a[i][j] %= 2007;}}while(cin >> n >> k)cout << a[n][k] << endl;}
0 0
- sicily 1687. Permutation
- Sicily 1687 Permutation
- Sicily 1687 Permutation
- Sicily 1280. Permutation
- Sicily.1280 Permutation
- sicily 解题报告: 1280 Permutation
- 1687. Permutation
- Permutation
- Permutation
- permutation
- Permutation
- Permutation
- Permutation
- permutation
- Permutation
- permutation
- Permutation
- Permutation
- 算法导论——初初见面
- 方差分析的基本概念
- Linux ID
- ios程序猿学习Swift 第一天 从Hello World开始
- chapter12test4
- sicily 1687. Permutation
- oc copy
- 对于非阻塞socket的可写事件
- java分页数据导出excel
- 简单选择排序算法
- 滚动条+threshold()
- python 输出格式
- 如何制作GIF动态图片
- spring 定时任务