矩形巢狀
時間限制:3000 ms | 記憶體限制:65535 kb
難度:4
描述有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x(a,b)可以巢狀在矩形y(c,d)中當且僅當ausing namespace std;
#define n 1005
struct node
a[n];
bool cmp(node a,node b)
a[n];
bool cmp(node a,node b)
int dp[n];
int main()
}/* 採用記憶化搜尋 求從s能到達的最長路徑 */
int dp(int s)
}return ans;
}void print_ans(int i)
}//for(j)
}int main()}/*
建圖 g[i][j]為1表示矩形i可以巢狀在矩形j中
那麼原問題便轉化為求dag上的最長路徑
定義狀態dp[i]表示從結點i出發可以到達的最長路徑
則 dp[i] = max(dp[j] + 1), 其中 g[i][j]=1,
*/memset(g, 0, sizeof g);
for (int i = 1; i <= n; ++i)
}}//for(i)
memset(dp, 0, sizeof dp);
int ans = 0;
int best;
for (int i = 1; i <= n; ++i)
}//for(i)
printf("ans = %d\n", ans);
print_ans(best);
printf("\n");
}return 0;
}
nyoj 16 巢狀矩形(DAG上的動態規劃)
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述 有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x a,b 可以巢狀在矩形y c,d 中當且僅當a 輸入 第一行是乙個正正數n 0輸出 每組測試資料都輸出乙個數,表示最多符合條件的矩形數目,每組輸出佔一行 樣例輸入 1 ...
NYOJ 16 矩形巢狀 DAG上的動態規劃
題目鏈結 nyoj16 矩形巢狀 題意 有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x a,b 可以巢狀在矩形y c,d 中當且僅當a 樣例 樣例輸入110 1 22 4 5 86 10 7 93 1 5 812 10 9 72 2 樣例輸出 5 分析 矩形之間的 可巢狀 關係是乙個典型...
nyoj 16 矩形巢狀
時間限制 3000 ms 記憶體限制 65535 kb 難度 4 描述有n個矩形,每個矩形可以用a,b來描述,表示長和寬。矩形x a,b 可以巢狀在矩形y c,d 中當且僅當ab套在 6,2 內,但不能巢狀在 3,4 中。你的任務是選出盡可 能多的矩形排成一行,使得除最後乙個外,每乙個矩形都可以巢狀...