hdu1160簡單dp最長下降子串行

2021-06-29 12:22:22 字數 544 閱讀 4401

/*

簡單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問題,但是這裡我們需要記錄中間資訊並且輸出,我們在輸入的時候給每乙個老鼠就加上編...