謎題2 習題3

2021-10-24 17:52:47 字數 2495 閱讀 2998

難題 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...