給你n磚,有三個長寬高。每乙個無限制的訪問。疊加在乙個條件的長度和寬度必須嚴格格長度和寬度大於下面的乙個,疊加求最大高度。
思維:每塊磚終於放置在根據本方法可以把六種,然後,對於長度和寬度排序。這是lis的變化的問題
#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define ll long long
#define ll __int64
#define eps 1e-8
#define inf 0xfffffff
//const ll inf = 1ll<<61;
using namespace std;
//vector> g;
//typedef pairp;
//vector> ::iterator iter;
////mapmp;
//map::iterator p;
int box[500][3];
int dp[1000];
int cnt;
typedef struct node ;
node node[500];
void init()
/*void cal(int x,int y,int z) */
void cal(int x,int y,int z)
bool cmp(node x,node y)
return x.x < y.x;
}int main()
int ans = 0;
sort(node,node+cnt,cmp);
/*for(int i=0;ifor(int i=0;idp[i] = node[i].z;
for(int i=0;i}
if(ans < dp[i])
ans = dp[i];
} printf("case %d: maximum height = %d\n",++case,ans);
} return 0;
}
zoj 動態規劃幾題(簡單)
1092 floyd 拼的對麼。就是算環的最大長度能否到1啦 include include include include using namespace std char a 1000 100 double b 100 100 char q 100 w 100 int m int qqq if ...
zoj4011 動態規劃
給定乙個n,m,要求乙個m為長度,並且從第一項起有b i 1 b i 0的數列,求出組合個數 1 b i n 利用dp來做,陣列dp i j 表示在長度為i時,以j為結尾的數列,邊界條件為dp 1 i 1,因為當長度為1時,以i為結尾的數列只有乙個。轉移方程為dp i k d i k dp i 1 ...
動態規劃 什麼是動態規劃?
先來看看 資訊學奧賽一本通第5版 是怎麼說的 動態規劃程式設計是對解最優化問題的一種途徑 一種方法,而不是一種特殊演算法。不像前面所述的那些搜尋或數值計算那樣,具有乙個標準的數學表示式和明確清晰的解題方法。動態規劃程式設計往往是針對一種最優化問題,由於各種問題的性質不同,確定最優解的條件也互不相同,...