UVALive 6177|HDU 4489|The King's Ups and Downs|动态规划
来源:互联网 发布:ios开源app源码 编辑:程序博客网 时间:2024/05/16 14:12
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4188
题目翻译
国王有一些身高不同的守卫。他希望给这些守卫安排一个排列,但不是简单地按身高从矮到高或者从高到矮,而是波浪形(每个人总比相邻的两个人都高或都矮),比如: 160, 162, 164, 166, 168, 170, 172
的两种可行排列是: 160, 164, 162, 168, 166, 172, 170
或者 172, 160, 170, 162, 168, 164, 166
。
国王希望知道有多少种排列方式。为了方便表示,我们按
如果有4个守卫,那么有一下几种排列: 1324, 2143, 3142, 2314, 3412, 4231, 4132, 2413, 3241, 1423
计算有n个守卫时的排列方式有多少种。
输入
第一行一个整数
输出
对于每组数据输出一行2个整数
样例输入
41 12 33 44 20
样例输出
1 l2 43 104 740742376475050
题解
如果令
如果算完打个表就知道f和g是对称的(观察一下公式也可以)。
即:
就是说,如果原来一个序列为
于是我们有:
又
所以有
也就是说,如果发现一层的dp只与上一层有关,不如考虑一下本层内有没有可以递推的公式。
然后。。结果就是
(因为f表示的是最开始先增的情况,还有对称的最开始先减的情况)
// UVALive 6177, HDU 4489#include <cstdio>#define FOR(i,j,k) for(i=j;i<=k;++i)const int N = 21;long long dp[N][N], ans[N];int main() { int T, kase, n, i, j; dp[1][1] = 1; ans[1] = 1; FOR(i,2,20) FOR(j,2,i) { dp[i][j] = dp[i - 1][i - j + 1] + dp[i][j - 1]; ans[i] += dp[i][j] * 2; } scanf("%d", &T); while (T--) { scanf("%d%d", &kase, &n); printf("%d %lld\n", kase, ans[n]); } return 0;}
- UVALive 6177|HDU 4489|The King's Ups and Downs|动态规划
- hdu 4489 The King’s Ups and Downs(动态规划)
- UVALive 6177 The King's Ups and Downs 规律题
- 【HDU】【The King’s Ups and Downs】
- The King’s Ups and Downs HDU
- hdu 4489 The King’s Ups and Downs(思维&DP)
- 组合dp hdu-4489-The King’s Ups and Downs
- hdu 4489 The King’s Ups and Downs (DP+组合)
- hdu 4489 The King’s Ups and Downs
- HDU 4489 The King’s Ups and Downs (DP)
- HDU 4489 The King’s Ups and Downs
- hdu 4489 The King’s Ups and Downs
- hdu 4489 The King’s Ups and Downs【递推】
- HDU 4489 The King’s Ups and Downs(组合DP)
- hdu4489 The King’s Ups and Downs
- hdu4489 The King’s Ups and Downs
- Uva 6177 The King's Ups and Downs
- HDU 4489The King’s Ups and Downs(dp递推)
- Orders POJ
- 十年后,程序员还会有今天的收入吗?
- codeforces 884E Binary Matrix 并查集,滚动数组
- 因为对Perl和Python不满?圣诞节无聊?编程语言的出现都这么随意吗?
- 精选11道Java技术面试题并有答案
- UVALive 6177|HDU 4489|The King's Ups and Downs|动态规划
- 11.5spring ssh
- DRM的基本概念
- Jquery显示全部普通应用
- spring框架下的ajax生成验证码以及进行验证码验证
- PAT (Basic Level) Practise (中文)1022. D进制的A+B (20)
- 关于二分法查找的优化
- Spring MVC测试框架详解——服务端测试
- 金明的预算方案(有依赖的dp问题)