DP 之 poj 2229
生活随笔
收集整理的這篇文章主要介紹了
DP 之 poj 2229
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//??[3/24/2014?Sjm]
/*
解法分析:
依次列出?N=1,?2,?3,?4,?5,?6,?7,?尋找規律:
(1)?若?n?為奇數:dp[n]?=?dp[n?-?1]?(第一個數必是1,?將第一個數去掉,?其所剩個數?即?dp[n-1])
(2)?若?n?為偶數:1)?第一個數字為1,將第一個數去掉,?其所剩個數?即?dp[n-1]2)第一個數為偶數(所有的這一排數均為偶數),?將2提出去,即可得?dp[n>>1]兩者加和,即為答案。
*/ 1 #include <iostream>
2 #include <cstdlib>
3 #include <cstdio>
4 #include <vector>
5 using namespace std;
6 const int Mod = 1e9;
7 int N;
8
9 int Solve()
10 {
11 vector<int> dp(N+1);
12 dp[1] = 1;
13 for (int i = 2; i <= N; i++){
14 if (i & 1) dp[i] = dp[i - 1];
15 else dp[i] = (dp[i - 1] + dp[i >> 1]) % Mod;
16 }
17 return dp[N];
18 }
19
20 int main()
21 {
22 //freopen("input.txt", "r", stdin);
23 //freopen("output.txt", "w", stdout);
24 while (scanf("%d", &N) != EOF)
25 printf("%d\n", Solve());
26 return 0;
27 }
?
轉載于:https://www.cnblogs.com/shijianming/p/4140873.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的DP 之 poj 2229的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言经典算法100例-037-给10个
- 下一篇: java堆内存与栈内存区别