【基礎dp路徑記錄】HDU 1160 FatMouse's Speed
/*
基礎dp
J - FatMouse's Speed
時間: 2017/02/23
題意:給出n組資料,要求選擇資料,證明越胖跑的越慢(即找個最長的體重嚴格遞增而速度嚴格遞減的資料)。
題解: LIS題
先按體重排序下,然後就是LIS找最長遞減就好了
記錄路徑:
1. 記錄終點,最後倒推回去,下面程式碼用的這種方式
2. 直接在過程中記錄:dp[i].pre = j;(或者用其他陣列記錄也可)
*/
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
using namespace std;
#define N 10010
#define INF 0x3f3f3f3f
struct asd
{
int w,s,id;
}a[N];
bool cmp(asd a, asd b)
{
if(a.w == b.w) return a.s > b.s;
return a.w < b.w;
}
int dp[N],rec[N];
int main()
{
int k = 0;
while(~scanf("%d%d",&a[k].w,&a[k].s))
{
a[k].id = k+1;
k++;
}
sort(a,a+k,cmp);
memset(dp,0,sizeof(dp));
int mx = 0;
int idx;
for(int i = 0; i < k; i++)
{
dp[i] = 1;
for(int j = i-1; j >= 0; j--)
{
if(a[j].w < a[i].w && a[j].s > a[i].s)
dp[i] = max(dp[j]+1,dp[i]);
}
if(mx < dp[i])
{
idx = i;
mx = dp[i];
}
}
printf("%d\n",mx);
k = 0;
rec[k++] = a[idx].id;
while(1)
{
for(int i = 0; i < idx; i++)
if(dp[i]+1 == dp[idx] && a[i].w < a[idx].w && a[i].s > a[idx].s)
{
idx = i;
rec[k++] = a[idx].id;
}
//cout << idx << endl;
if(dp[idx] == 1)
break;
}
for(int i = k-1; i >= 0; i--)
printf("%d\n",rec[i]);
return 0;
}
相關文章
- 【基礎dp】HDU 1260 Tickets
- POJ 1141 Brackets Sequence(記錄路徑的dp)Racket
- HDU 5326 Work (基礎樹形dp)
- 【基礎dp】HDU 1176 免費餡餅
- POJ 3373 Changing Digits(記錄路徑的dp)Git
- 【基礎dp】HDU 1257 最少攔截系統
- 「暑期訓練」「基礎DP」免費餡餅(HDU-1176)
- Codeforces 453B Little Pony and Harmony Chest:狀壓dp【記錄轉移路徑】
- 「暑期訓練」「基礎DP」 Monkey and Banana (HDU-1069)NaN
- POJ1160 Post Office[序列DP]
- wordpress 記錄php-error.log路徑PHPError
- 【python3基礎】相對路徑,‘/’,‘./’,‘../’Python
- ios 基礎問題記錄iOS
- SQLL基礎知識記錄SQL
- JAVA基礎-註解記錄Java
- HDU 5135 Little Zu Chongzhi's Triangles(狀壓dp或者貪心)
- HDU 3853 LOOPS(概率dp)OOP
- 零基礎入門Python的路徑Python
- 狀壓DP基礎入門
- Java基礎題目記錄-01Java
- SVN——使用方法基礎記錄
- 最最基礎的乾貨:Linux中的絕對路徑和相對路徑Linux
- HDU 4669 Mutiples on a circle (DP , 統計)
- [kuangbin帶你飛]專題十二 基礎DP1 D - Doing Homework HDU - 1074
- 一類哈密頓路徑/迴路為背景的狀壓dp
- go 學習記錄--基礎語法Go
- 面試問題記錄 一 (基礎部分)面試
- c#獲取路徑 c/sC#
- k8s 學習路徑K8S
- RewriteBase基準路徑
- 【C#學習筆記】瀏覽目錄得到路徑C#筆記
- YT05-動態歸劃求解課後題目-1001—FatMouse's Speed-(6.21日-煙臺大學ACM預備隊解題報告)ACM
- POJ1849Two[DP|樹的直徑](擴充套件HDU4003待辦)套件
- 基礎路徑規劃演算法(Dijikstra、A*、D*)總結演算法
- Go基礎:路徑、檔名和包名的關係Go
- Vue學習路徑-輕鬆從基礎到實戰Vue
- dp 套 dp(dp of dp)小記
- hdu 3401 單調佇列+DP佇列