Gravatar
怡红公子
积分:130
提交:28 / 62
不知道大家怎么做的,我花了一个小时想算法,后来写了个爆搜找规律。
f[i][j]=f[i-1][j]*j+f[i-1][j-1]*(i+1-j);
后来还是0分,文件名写错了。

题目 1258 K 上升段 AAAAAAAAAA
2012-11-08 20:17:59
Gravatar
天下第一的吃货殿下
积分:234
提交:79 / 206
简单动归,蛋疼的是开longint会爆- -! 囧~
dp[i,j]表示前i个有j个上升序列的个数,方程dp[i,j]:=dp[i-1,j-1]*(i-j+1)+dp[a-1,b]*b ,意思是要转移成当前状态需要两种状态转移过来,分别对应加上当前数后序列个数增加和不增加两种情况,边界值dp[i,1]:=1,i∈[1,n].

题目 1258 K 上升段 AAAAAAAAAA
2012-11-08 18:00:39
Gravatar
Makazeu
积分:3005
提交:780 / 1516
如果暴力枚举的话,算出n=20的情况需要15000

题目 1258 K 上升段
2012-11-08 17:41:41
Gravatar
张来风飘
积分:75
提交:12 / 28
由于前一天比赛的原因,我还是写了高精度。。。应该先验证一下要不要写的。。。

题目 1258 K 上升段 AAAAAAAAAA
2012-11-08 16:19:19
Gravatar
Truth.Cirno
积分:1591
提交:557 / 1253
从10X10的表找规律,
然后每个程序现场打表(好浪费……),再输出

题目 1258 K 上升段 AAAAAAAAAA
2012-11-08 15:47:09
Gravatar
王者自由
积分:2262
提交:482 / 780
先用 STL 枚举出来一个表(算到 n=12 就出不来了)
1: 1
2: 1 1
3: 1 4 1
4: 1 11 11 1
5: 1 26 66 26 1
6: 1 57 302 302 57 1
7: 1 120 1191 2416 1191 120 1
8: 1 247 4293 15619 15619 4293 247 1
9: 1 502 14608 88234 156190 88234 14608 502 1
10: 1 1013 47840 455192 1310354 1310354 455192 47840 1013 1
11: 1 2036 152637 2203488 9738114 15724248 9738114 2203488 152637 2036 1
12: 1 4083 478271 10187685 66318474 162512286 162512286 66318474 10187685 478271 4083 1
然后找规律 \[ f_{i, j} = (i - j + 1) \times f_{i-1, j-1} + j \times f_{i-1, j} \] 要用 long long ,高精度暂时不必~

题目 1258 K 上升段 AAAAAAAAAA
2012-11-08 15:34:33
Gravatar
Makazeu
积分:3005
提交:780 / 1516
先暴力next_permutation,然后递推。

题目 1258 K 上升段
2012-11-08 15:26:18