POJ1065 Wooden Sticks(貪心+動態規劃——單調遞增子序列)
描述
C小加有一些木棒,它們的長度和質量都已經知道,需要一個機器處理這些木棒,機器開啟的時候需要耗費一個單位的時間,如果第i+1個木棒的重量和長度都大於等於
第i個處理的木棒,那麼將不會耗費時間,否則需要消耗一個單位的時間。因為急著去約會,C小加想在最短的時間內把木棒處理完,你能告訴他應該怎樣做嗎?
輸入
第一行是一個整數T,表示輸入資料一共有T組。
每組測試資料的第一行是一個整數N(1<=N<=5000),表示有N個木棒。接下來的一行分別輸入N個木棒的L,W(0 < L ,W <= 10000),用一個空格隔開,分別表示
木棒的長度和質量。
輸出
處理這些木棒的最短時間。
樣例輸入
3
5
4 9 5 2 2 1 3 5 1 4
3
2 2 1 1 2 2
3
1 3 2 2 3 1
樣例輸出
2
1
3
程式碼如下:
解題思路:(貪心演算法 + 動態規劃——單調遞增子序列)
1.首先將木棒排序,總體為l遞增排序,若l相等,則w遞增。
2.對第i個木棒處理:選出單調遞增子序列,並將單調遞增子序列標記為1(使用過)。選出後,時間+1.進行第i+1個木棒的處理
相關推薦
POJ1065 Wooden Sticks(貪心+動態規劃——單調遞增子序列)
描述 C小加有一些木棒,它們的長度和質量都已經知道,需要一個機器處理這些木棒,機器開啟的時候需要耗費一個單位的時間,如果第i+1個木棒的重量和長度都大於等於 第i個處理的木棒,那麼將不會耗費時間,否則需要消耗一個單位的時間。因為急著去約會,C小加想在最短的時間內把木棒處理
HDU 1051: Wooden Sticks(貪心)
memory others sticks mac resp setup cto ret cst Wooden Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768
codeforces 某套題s : surf(貪心 || 動態規劃)
blog 時間 with mis 動態規劃 oal 區間 could points 題目: Now that you’ve come to Florida and taken up surfing, you love it! Of course, you’ve reali
Codeforces1076F. Summer Practice Report(貪心+動態規劃)
題目連結:傳送門 題目: F. Summer Practice Report time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard
HDU1051 Wooden Sticks(貪心&結構體排序)
There is a pile of n wooden sticks. The length and weight of each stick are known in advance. The sticks are to be processed by a woodworking machin
HDU-Wooden Sticks(貪心)
Wooden Sticks There is a pile of n wooden sticks. The length and weight of each stick are known in advance. The sticks are to be processed by a wood
動態規劃之最長單調遞增子序列(C++原始碼)
動態規劃之最長單調遞增子序列 問題: L={a1,a2,a3,…,an}既L是由n個不同的實陣列成的序列,求L的最長單調遞增子序列(下標可不連續)。 分析: 設輔助陣列b,b[i]表示以a[i]為結尾的最長遞增子序列的長度,最長遞增子序列的長度,就是陣列b的最大
HDU 1051 Wooden Sticks (貪心入門)
The input consists of T test cases. The number of test cases (T) is given in the first line of the input file. Each test case consists of two lines: The
3233 找硬幣(貪心+動態規劃)
題目:Description小蛇是金融部部長。最近她決定製造一系列新的貨幣。假設她要製造的貨幣的面值為x1,x2,x3… 那麼x1必須為1,xb必須為xa的正整數倍(b>a)。例如1,5,125,
[C++] 動態規劃之矩陣連乘、最長公共子序列、最大子段和、最長單調遞增子序列
每次 種子 () return 避免 amp 可能 text com 一、動態規劃的基本思想 動態規劃算法通常用於求解具有某種最優性質的問題。在這類問題中,可能會有許多可行解。每一個解都對應於一個值,我們希望找到具有最優值的解。 將待求解問題分解成若幹個子問題,先求
動態規劃——最長單調遞增子序列
題目描述 用動態規劃設計一個演算法,要求找出由n個整陣列成的序列的最長單調遞增子序列的個數(假設所有的元素都不相同)。 輸入 第一行輸入一個整數,表示有n個整數。 第二行輸入n個整數。 輸出 第三行輸出最長單調遞增子序列的個數。 樣例輸入 6 1 3 2 5
NYOJ 題目79 攔截導彈(動態規劃,最長遞增子序列)
攔截導彈 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述 某國為了防禦敵國的導彈襲擊,發展中一種導彈攔截系統。但是這種導彈攔截系統有一個缺陷:雖然它的第一發
NYOJ 214.單調遞增子序列(二)(動態規劃)
/* 描述 給定一整型數列{a1,a2...,an}(0<n<=100000),找出單調遞增最長子序列,並求出其長度。 如:1 9 10 5 11 2 13的最長單調遞增子序列是1 9 10 11 13,長度為5。 輸入 有多組測試資料(<=7) 每組測試
最長單調遞增子序列(O(n^2))
#include "iostream" #include "fstream" using namespace std; /* b[i]表示長度為i的子序列c[i]中,由若干元素組成的最長單調遞增子序列
單調遞增子序列(二)(南陽oj214)
單調遞增子序列(二) 時間限制:1000 ms | 記憶體限制:65535 KB 難度:4 描述 給定一整型數列{a1,a2...,an}(0<n<=100000),找出單調遞增最長子序列,並求出其長度。 如:1 9 10 5 11 2 13的
[dp]最長單調遞增子序列
bsp 存在 ont for printf iss 需要 hellip 註意 https://www.51nod.com/tutorial/course.html#!courseId=12 解題關鍵: 如果將子序列按照長度由短到長排列,將他們的最大元素放在一起,形成新序
NYOJ17 最長單調遞增子序列 線性dp
tar 最長 using print code \n clu sca can 題目鏈接: http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=17 分析: i=1 dp[i]=1 i!=1 dp[i]=max(dp[j]+
hihocoder 1797 單調遞增子序列 二分
給定一個包含N個整數的序列A1, A2, ... AN,你可以從中刪除一段連續的子序列,使得剩下的序列是單調遞增(不減)的。 請你求出最少刪除幾個元素。 Input 第一行包含一個整數N。 第二行包含N個整數A1, A2, ... AN。 對於30%的
LeetCode題解:longest-increasing-subsequence(最長遞增子序列)
題目描述 Example: Input: [10,9,2,5,3,7,101,18] Output: 4 Explanation: The longest increasing subsequence is [2,3,7,101], the length is 4. Not
hihocoder 1797 單調遞增子序列 二分
給定一個包含N個整數的序列A1, A2, ... AN,你可以從中刪除一段連續的子序列,使得剩下的序列是單調遞增(不減)的。 請你求出最少刪除幾個元素。 Input 第一行包含一個整數N。 第二行包含N個整數A1, A2, ... AN。 對於30%的資料,