/*簡單dp,要記錄順序
解:先排序,然後是乙個最長下降子串行 ,中間需記錄順序
dp[i]=max(dp[i],dp[j]+1);
*/#include#include#include#define n 1100
/*w,s代表重量和速度,index記錄原來輸入時的順序下標,pre指向排序後的上乙個下標,answer記錄排序後每乙個位置的最優值*/
typedef struct node f;
f f[n];
int cmp(const void *a,const void *b)
void print(int k)
print(f[k].pre);
printf("%d\n",f[k].index);
}int main()
k=-1;
for(i=0;iif(kprintf("%d\n",k);//個數
print(index);//遞迴輸出要求的數順序
return 0;}
hdu1160簡單dp最長下降子串行
簡單dp,要記錄順序 解 先排序,然後是乙個最長下降子串行 中間需記錄順序 dp i max dp i dp j 1 include include include define n 1100 w,s代表重量和速度,index記錄原來輸入時的順序下標,pre指向排序後的上乙個下標,answer記錄排...
hdu 1160 最長遞增子串行 輸出)
思路 就是排序後求最長遞增子串行,只不過多了乙個判斷 s下降 以及最後輸出下標,我們可以用乙個pre陣列來記錄路徑,最後遞迴輸出就行了。1 include2 include3 include4 include5 using namespace std 6 define maxn 1010 7stru...
HDU1160 一點點技巧的DP
1.題目鏈結。題目大意 給出一些老鼠的引數,每一行兩個資料,第乙個是老鼠的體重,第二個是速度,求出一組這樣的老鼠,他們的體重在增加,但是速度在減小。盡可能是這個數量最多。輸出這些老鼠的數量和對應的編號。2.就是乙個lis問題,但是這裡我們需要記錄中間資訊並且輸出,我們在輸入的時候給每乙個老鼠就加上編...