這兩個問題很像,都是依次列舉出以每乙個地點為終點時的最大值,在從中選取乙個最大值
遊覽世博
題目描述華華準備去上海世博會遊覽,但展館太多,而時間有限,因此他只能選擇遊覽一部分展館。在世博園區,假設華華想去的所有展館都在一條直道上,展館只有大、小兩類,參觀小展館需30分鐘,參觀大展館要60分鐘。已知:從起點到各展館的時間及展館的大小。請問:華華最多能夠參觀多少個展館。
輸入華華準備去上海世博會遊覽,但展館太多,而時間有限,因此他只能選擇遊覽一部分展館。在世博園區,假設華華想去的所有展館都在一條直道上,展館只有大、小兩類,參觀小展館需30分鐘,參觀大展館要60分鐘。已知:從起點到各展館的時間及展館的大小。請問:華華最多能夠參觀多少個展館。
輸入n s(展館個數n<=100,遊覽時間s為整數分鐘)
n個整數(表示從起點到各展館所需要的時間,以空格相隔)
n個整數(表示各展館的大小,1為小展館,2為大展館,以空格相隔)
輸出華華能夠參觀的最多展館數
樣例輸入5 200
30 120 100 75 50
2 1 2 1 1
樣例輸出3
(即:參觀1、4、5號展館,總共用時195分鐘 題解
這是乙個貪心題,我們需要先將展館位置從大到小排序,依次列舉以各個展館為終點時的方案,如果以這個展館為終點,那麼我們途經的所有展館都可以選擇參觀或者不參觀,然後應該先選擇從小展館參觀,再選擇大展館參觀,使得總參觀展館數最大 **
#include
#include
using
namespace std;
//記錄世博會的所需時間和大小
struct v
visit[
15000];
bool
cmp(v a, v b)
intmain()
}//再參觀大展館
for(
int j=
1;j<=i;j++)}
maxx=
max(maxx,temp);}
cout
}
釣魚問題
題目描述在一條水平路邊,有 nn 個釣魚湖,從左到右編號為 1,2,…,n1,2,…,n。佳佳有 hh 個小時的空餘時間,他希望利用這個時間釣到更多的魚。他從 11 出發,向右走,有選擇的在一些湖邊停留一定的時間(是 55 分鐘的倍數)釣魚。最後在某乙個湖邊結束釣魚。佳佳從第 ii 個湖到第 i+1i+1 個湖需要走 5\times t_i5×ti 分鐘路,還測出在第 ii 個湖停留,第乙個 55 分鐘可以釣到 f_ifi 條魚,以後每再釣 55 分鐘,可以釣到的魚量減少 d_idi,若減少後的魚量小於 00,則減少後的魚量為 00 。為了簡化問題,佳佳假定沒有其他人釣魚,也沒有其他因素影響他釣到期望數量的魚。請程式設計求出佳佳最多能釣魚的數量。
輸入第一行乙個整數 n,表示湖的個數
第二行乙個整數 h,表示佳佳的空閒時間
第三行有 n 個整數,依次表示每個湖第乙個 55 分鐘能釣到魚的數量
第四行有 n 個整數,依次表示以後的每5分鐘釣魚數量比前乙個 55 分鐘釣魚數量減少的數量
第五行有 n-1 個整數,ti 表示由第 i 個湖到第 i+1 個湖需要花 5×ti 分鐘的路程
輸出輸出只有一行,表示佳佳最多能釣魚的數量
樣例輸入3
14 5 6
1 2 1
1 2
樣例輸出
樣例解釋在第 11 個湖釣 15 分鐘,共釣得 4+3+2=94+3+2=9 條魚;
在第 22 個湖釣 10 分鐘,共釣得 5+3=85+3=8條魚;
在第 33 個湖釣 20 分鐘,共釣得 6+5+4+3=186+5+4+3=18 條魚;
從第 11 個湖到第 22 個湖,從第 22 個湖到第 33 個湖,共用時間 1515 分鐘,共得 3535 條魚,並且這是最多的數量。 題解
這道題是乙個貪心問題,依次列舉只走到每乙個池塘的情況下,所能掉到的最多魚,進行比較,取最大值就行
#include
#include
using
namespace std;
struct l
;struct lt
;bool
cmp(lt l1,lt l2)
intmain()
//依次表示以後的每5分鐘釣魚數量比前乙個5分鐘釣魚數量減少的數量
for(i=
1;i<=n;i++
)for
(i=2
;i1;i++
)//在路上花費的時間
t[1]
=0; maxx=0;
//sort(laketemp+1,laketemp+n,cmp);//測驗
//列舉以每乙個湖為結束點的最大釣魚量
for(i=
1;i<=n;i++
)//先把剩餘魚多的排在前面
sort
(laketemp+
1,laketemp+i+
1,cmp)
; fish=laketemp[1]
.num;
while
(count>
0&&fish>0)
//次數和魚數都大於0
maxx=
max(maxx,sum);}
//取地最大值
cout<}return0;
}
世博遊覽技巧
世博遊覽技巧 方案一 一日進園步驟1 4 50 5 30到達5 號門3號口07 00 開園後最大速度向後面的安檢口跑 看到少於 30人就可以拿到中國的預約 也就是安檢的前3排 09 00 安檢後就會有人發中國的預約券 可以不按預約的時間去 但是必須當天 20 00 以前去排隊 09 01 拿到中國國...
郵票問題詳細題解 簡單dp
已知乙個 n 枚郵票的面值集合 如,和乙個上限 k 表示信封上能夠貼 k 張郵票。計算從 1 到 m 的最大連續可貼出的郵資。例如,假設有 1 分和 3 分的郵票 你最多可以貼 5 張郵票。很容易貼出 1 到 5 分的郵資 用 1 分郵票貼就行了 接下來的郵資也不難 6 3 3 7 3 3 1 8 ...
P1106 刪數問題 詳細題解
戳一戳 題解 對於這題我們使用貪心思想 貪心策略是比較前乙個數是不是比後面一位數要大 因為要得到最小的數,就要盡量讓數的前面位數小 如果要大的話,就把當前的數給刪去 得到乙個新的string 然後再重新進行一次兩兩大小的判斷 每重新判斷一次 就會刪去乙個數 也就是總體要判斷k次 當然也會出現沒有前面...