Apple Catching POJ - 2385
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int dp[2][31];//在第i棵樹時,步數為j時取的最大蘋果數//0代表第一棵樹,1代表第二棵樹;
int a[1001];
int main()
{
int treenumber,step;
int pos;
int ans=0;
memset(dp,0,sizeof(dp));
scanf("%d%d",&treenumber,&step);
for(int i=0;i<treenumber;i++)
{
scanf("%d",&a[i]);
}
for(int i=0;i<treenumber;i++)
{
if(i==0)
{
if(a[0]==1)//牛開始站在第一棵樹下,如果蘋果開始是從第一棵樹下落下的根據dp陣列的定義
dp[0][0]=1;// 第一棵樹下不移動,接到的最大蘋果數目為1;
else if(a[0]==2)//如果蘋果開始是從第二棵樹上落下,那麼牛需要從第一棵樹移動到第二棵樹、
dp[1][1]=1;//接到的蘋果數目為1;
continue;
}
for(int j=step;j>=0;j--)
{
if(j)
dp[a[i]-1][j]=max(dp[a[i]-1][j],dp[a[i]%2][j-1])+1;//這裡的 dp[a[i]-1][j]+1表示這隻牛沒有移動
else // 並且接到了1個蘋果,dp[a[i]%2][j-1]+1表示
dp[a[i]-1][j]++; //牛移動從另外一棵樹下,移動到當前樹下接到1個蘋果
if(dp[a[i]-1][j]>ans)
ans=dp[a[i]-1][j];
}
}
printf("%d\n",ans);
}
相關文章
- POJ 3321 Apple TreeAPP
- POJ 2486 Apple Tree(樹形dp)APP
- poj2486Apple Tree[樹形揹包!!!]APP
- POJ3321Apple Tree[樹轉序列 BIT]APP
- POJ 3321-Apple Tree(樹狀陣列)APP陣列
- GC2385 datasheet/規格書,GC2385攝像頭晶片資料GC晶片
- POJ 3321 Apple Tree(dfs+樹狀陣列)APP陣列
- POJ3321 Apple Tree(DFS序 + 樹狀陣列)APP陣列
- 2385. 感染二叉樹需要的總時間二叉樹
- HDU 1077Catching Fish(簡單計算幾何)
- POJ 3461 kmpKMP
- poj3417
- Flip Game(POJ 1753)GAM
- POJ 2431 Expedition
- POJ3259-WormholesWorm
- POJ 3414 Pots
- POJ 1562 Oil Deposits
- poj 2478 尤拉函式函式
- POJ 2524 Ubiquitous ReligionsUI
- POJ 3981 字串替換字串
- poj 1276 Cash MachineMac
- POJ 基本演算法演算法
- POJ3414-Pots
- POJ 1089 Intervals
- POJ 2799 IP Networks
- POJ 2891 Strange Way to Express IntegersExpress
- Dungeon Master(POJ-2251)AST
- 【poj3468】A Simple Problem with Integers
- POJ 1160 Post Office
- POJ-2251 Dungeon MasterAST
- poj 2481 樹狀陣列陣列
- POJ-1664 放蘋果蘋果
- POJ2251 Dungeon MasterAST
- Sign In with AppleAPP
- POJ 1850 Code/POJ 1496 Word Index(組合數學-字母串序號)Index
- POJ 2355 Railway Ticket problemAI
- POJ 1611 The Suspects 圖論圖論
- POJ 2240 Arbitrage(Floyd最短路)