難題 3 假設每位名人都有乙個權重,取決於你對這位名人的喜愛程度。可以在
時間表中將其表示為乙個三元組,如(6.0, 8.0, 3)。開始時間是 6.0,結束時間是 8.0,權重是 3。修改**,找出最大化名人總權重的時間。例如,給定圖 2-2,我們想要返回與右側虛線對應的時間,即使當時只有兩位名人。
'''
謎題2 習題3
解題思路:有兩種方法
第一種:對名人參加派對的參加時間和退出時間按從小到大進行排序,
然後按順序在名人的加入和離開的時間點計算派對的名人權重。
第二種:計算每個名人參加時間內派對的名人權重,然後選出最大值。
'''sched =[(
7.0,
14.0,1
),(8.0
,10.0,1
),(9.0
,11.0,1
),(12.0
,13.0,3
)]sched2 =[(
6.0,
8.0,2)
,(6.5,
12.0,1
),(6.5
,7.0,2
),(7.0
,8.0,2
),(7.5
,10.0,3
),(8.0
,9.0,2
),(8.0
,10.0,1
),(9.0
,12.0,2
),(9.5
,10.0,4
),(10.0
,11.0,2
),(10.0
,12.0,3
),(11.0
,12.0,7
)]# 採用選擇排序排序列表
defsortlist
(list1)
:for i in
range
(len
(list1)-1
):# 用來記錄最小值的索引
temp = i
for j in
range
(i+1
,len
(list1)):
# 已知最小值跟未知值比較
if list1[temp][0
]> list1[j][0
]:temp = j
list1[i]
, list1[temp]
= list1[temp]
, list1[i]
# 第一種方法
defbesttimetoparty1
(schedule)
: times =
weight =
0 maxweight =
0 time =
0for c in schedule:
(c[0],
'start'
, c[2]
))(c[1],
'end'
, c[2]
))sortlist(times)
for c in times:
if c[1]
=='start'
: weight += c[2]
elif c[1]
=='end'
: weight -= c[2]
if weight > maxweight:
maxweight = weight
time = c[0]
print
('best time to attend the party is at'
, time,
'o\'clock:'
,'the largest weight is'
, maxweight)
# 第二種方法
defbesttimetoparty2
(schedule)
: resultset =
for c in schedule:
tempweight =
0for c2 in schedule:
if c[0]
< c2[1]
and c[0]
>= c2[0]
: tempweight += c2[2]
maxweight =
max(resultset[0:
len(resultset)])
index = resultset.index(maxweight)
time = schedule[index][0
]print
('best time to attend the party is at'
, time,
'o\'clock:'
,'the largest weight is'
, maxweight)
besttimetoparty1(sched)
besttimetoparty2(sched)
習題3 5 謎題
題目 有乙個5 5的網格,其中恰好有乙個格仔是空的,其他格仔各有乙個字母。一共有4種指 令 a,b,l,r,分別表示把空格上 下 左 右的相鄰字母移到空格中。輸入初始網格和指 令序列 以數字0結束 輸出指令執行完畢後的網格。如果有非法指令,應輸出 this puzzle has no final c...
習題3 5 謎題(Puzzle)
謎題輸入 trgsj xdoki m vln wpabe uqhcf arrbbl0 include includeint main getchar 這個還真是難倒我了 for i 0 i 5 i for j 0 j 5 j if a i j i1 i,j1 j 記錄空格位置 printf n ch...
習題3 5 謎題 UVa227
演算法競賽入門經典 第2版 第3章 陣列和字串 習題3 5 謎題 uva227 感悟。1 直接看英文原題的輸入輸出樣例,在題意理解要求上省了許多力。2 程式難在輸入輸出處理,難在字元讀取,策略 寫一段 跟蹤除錯一段,正確之後才往下寫,其中發現不少錯誤,一氣呵成,寫出無誤的 真的是很難很難啊。3 對g...