隊員們發現山上乙個有n個景點,並且決定按照順序來瀏覽這些景點,即每次所瀏覽景點的編號都要大於前乙個瀏覽景點的編號。同時隊員們還有另乙個登山習慣,就是不連續瀏覽海拔相同的兩個景點,並且一旦開始下山,就不再向上走了。隊員們希望在滿足上面條件的同時,盡可能多的瀏覽景點,你能幫他們找出最多可能瀏覽的景點數麼?
該題其實就是把該數列求最大上公升子串行正著求一遍反著求一遍分別用陣列儲存,然後對應元素相加求新數列最大值,新數列每一位上值表示隊伍以次山作為拐點的最多遊覽數。
#include
#include
#include
using
namespace std;
intmain
(),dp[
1001
]=,b[
1001
]=,max=
0,n;
cin>>n;
for(
int i=
1;i<=n;i++)
for(
int i=
2;i<=n;i++)}}
dp[i]=max+1
;max=0;
} max=0;
memset
(b,0
,sizeof
(b));
b[n]=1;
for(
int i=(n-1
);i>=
1;i--)}}
b[i]=max+1
;max=0;
}for
(int i=
1;i<=n;i++)
max=0;
for(
int i=
1;i<=n;i++)
} cout<;}
關於動態規劃的練習題
1.給出不同面額的硬幣以及乙個總金額.寫乙個方法來計算給出的總金額可以換取的最少的硬幣數量.如果已有硬幣的任意組合均無法與總金額面額相等,那麼返回 1。public static intdp int arr,int count 如果不能湊成額度,則返回 1 if cost count integer...
登山(動態規劃)
五一到了,icpc隊組織大家去登山觀光,隊員們發現山上一共有n個景點,現在告訴你這n個景點的海拔。隊員們決定按照順序來瀏覽這些景點,即每次所瀏覽景點的下標都要大於前乙個瀏覽景點的下標。同時隊員們還有另乙個登山習慣,就是不連續瀏覽海拔相同的兩個景點,並且一旦開始下山,就不再向上走了。隊員們希望在滿足上...
練習題目6
1.寫乙個函式返回引數二進位制中 1 的個數 比如 15 00001111 4 個 1 思路 先將此數和1進行按位與運算,若結果非0,計數器加一。然後每次讓1左移,然後和此數相與,結果非0,計數器加加。如下 2.獲取乙個數二進位制序列中所有的偶數字和奇數字,分別輸出二進位制序列。思路 求奇數字序列 ...