URAL 1260 Nudnik Photographer(递推)
2014-04-14 11:11
381 查看
题目链接
题意 : 给你1到n这n个数,排成一排,然后1放在左边最开始,剩下的数进行排列,要求排列出来的数列必须满足任何两个相邻的数之间的差不能超过2,问你有多少种排列
思路 : 对于dp
, n个人时求F
。第2个位置放2时有F[n-1]种;第2个位置放3,第3个位置放2,第4个位置只能放4,有F[n-3]种;第2个位置放3,第3个位置放5,13578642,有1种;第2个位置放3,第3个位置不能放4。
所以:
1、12……(dp[n-1])
2、1324……(dp[n-3])
3、1357……8642(一种确定的情况)
View Code
题意 : 给你1到n这n个数,排成一排,然后1放在左边最开始,剩下的数进行排列,要求排列出来的数列必须满足任何两个相邻的数之间的差不能超过2,问你有多少种排列
思路 : 对于dp
, n个人时求F
。第2个位置放2时有F[n-1]种;第2个位置放3,第3个位置放2,第4个位置只能放4,有F[n-3]种;第2个位置放3,第3个位置放5,13578642,有1种;第2个位置放3,第3个位置不能放4。
所以:
1、12……(dp[n-1])
2、1324……(dp[n-3])
3、1357……8642(一种确定的情况)
//URAL 1260 #include <stdio.h> #include <string.h> #include <iostream> using namespace std ; int dp[57] ; void chart() { dp[1] = dp[2] = 1 ; dp[3] = 2 ; for(int i = 4 ; i <= 56 ; i++) dp[i] = dp[i-1]+dp[i-3]+1 ; } int main() { int n ; chart() ; while(~scanf("%d",&n)) { printf("%d\n",dp ) ; } return 0 ; }
View Code
相关文章推荐
- 递推DP URAL 1260 Nudnik Photographer
- URAL 1260 Nudnik Photographer 简单的递推
- 递推DP URAL 1009 K-based Numbers
- URAL 1513. Lemon Tale(简单的递推)
- URAL 1117 - Hierarchy(递推或递归)
- URAL 1017. Staircases(递推)
- Ural 1260 A nudnik photographer(DP)
- 递推DP URAL 1081 Binary Lexicographic Sequence
- URAL 1260
- Ural 1309 Dispute (递推)
- 递推DP URAL 1119 Metro
- 递推DP URAL 1244 Gentlemen
- BZOJ 2786 Ural1142 Relation 递推
- 【dp 挺棒的】URAL - 1260 Nudnik Photographer
- URAL 1079 Maximum 递推
- URAL 1009. K-based Numbers(简单递推)
- 递推DP URAL 1353 Milliard Vasya's Function
- URAL2047 Maths (暴力打表 递推)
- Ural_1260. Nudnik Photographer(DP)
- URAL 1225-Flags(规律递推)