日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NYOJ 469 擅长排列的小明 II (dp问题)

發布時間:2025/7/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NYOJ 469 擅长排列的小明 II (dp问题) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=469

思路:動態規劃dp

題目分析:

由于第一個只能是1,則第二個數只能是2,3

當第二個數是2時,則相當于是對2-n的排列,相當于對1-(n-1)的排列,即s[n-1];

當第二個數是3時,第三個數只能是2,4,5

此時,當第三個數為2時,則是對3-n的排列,相當于對1-(n-3)的排列,即s[n-3]

   當第三個數為4時,此時,第四個數只能是2,除了n等于4時,對于n大于4的排列,都不符合要求,

   而n為4時,與第三個數為5時的排列相同,所以, 可認為第三個數為4時不符合要求,

   當第三個數為5時,只有一種情況,1,3,5,6,7,9,……,10,8,6,4,2,

所以,可得遞推公式,s[i]=s[i-1]+s[i-3]+1.初始化s[]={0,1,1,2}

代碼如下:

1 #include <stdio.h> 2 int main() 3 { 4 int n,dp[57]={0,1,1,2}; 5 for(int i=4;i<=55;i++) 6 dp[i]=dp[i-1]+dp[i-3]+1; 7 while(~scanf("%d",&n)) 8 { 9 printf("%d\n",dp[n]); 10 } 11 return 0; 12 } 13

轉載于:https://www.cnblogs.com/mycapple/archive/2012/08/23/2652978.html

總結

以上是生活随笔為你收集整理的NYOJ 469 擅长排列的小明 II (dp问题)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。