2016SDAU課程練習一1001

2021-07-10 13:36:52 字數 803 閱讀 4908

簡單題意:

切木頭。給出木頭的長度和重量,當切的下一根的木頭和重量都大於前乙個時不用調整工具,否則調整一次一分鐘。第一次切需要一分鐘的準備時間。

解題思路及形成過程:

剛開始的時候我是按照1004的方法做的,找到比前一組長度或重量小的就+1,但後來發現這並不是最優解,所以一直wa。再後來經過查詢資料,學到一種方法:通過排序順著第一組資料往下找長度和重量比上乙個大的,只標記第一次沒有處理的木頭,找到最後乙個再返回標記的木頭重新找,直到所有的木頭都是處理過了的,即完成了最短時間。

感想:可能是接觸太少的原因,我還是覺得挺難懂的,還要做標記。還有乙個雖然不起眼,但是很重要的問題。尤其在做之前的題目中也遇到過,標頭檔案的問題,。少了特定的標頭檔案就會出現ce,之前寫的時候,認識的不認識的標頭檔案都一併加進去,多餘也沒關係,但是這次,就這道題來說,我又試了試發現沒用的標頭檔案太多,於是我只保留了必要的標頭檔案。而且我發現,string和string.h是完全不同完全沒關係的兩個標頭檔案。在這裡用到的memset函式用到的標頭檔案是或者

ac**:

#include

#include

#include

using namespace std;

struct wood

a[5001];

bool used[5001];

bool cmp(wood w1,wood w2)       //按照長度從小到大排序,若長度相同按照重量遞增排序

else}}

if(flag)    //說明都用過了

break;

}cout<}return 0;

}

2016SDAU課程練習一1000

簡單題意 有400個房間 搬一次需要10分鐘。輸入 幾 組資料,房間編號 m 到 n 求最少需要多少分鐘。樣例 sample input 3 4 10 20 30 40 50 60 70 80 2 1 3 2 200 3 10 100 20 80 30 50 sample output 10 203...

2016SDAU課程練習一1006

簡單題意 只有乙個電梯。上樓需要六分鐘,下樓需要四分鐘,每一層停留五分鐘。輸入n組資料,按照特定的順序上下樓,求總共需要的時間。解題思路及形成過程 雖然放在貪心演算法的專題,但是顯然用傻瓜法更容易。感想 第一次這麼快速的解決一道題。ac include include using namespace...

2016SDAU課程練習二1002

大體題意 f x 6 x 7 8 x 6 7 x 3 5 x 2 y x 0 x 100 給出y,求x取0 100之間某數時f的最小值。sample input 2 100200 sample output 74.4291 178.8534 解題思路及形成過程 先把y當做常數求導,求導之後的f 0時...