百度 筆試題(20190910)

2021-09-27 02:13:09 字數 2160 閱讀 9968

沒有ac的思路,就簡單的考慮一種情況來實現的,通過率為45%。

def

flip_corn

(seq, x, y):if

not seq:

return

0 neg_to_pos =

min(x, y)

count, flag =0,

false

for su in seq:

if flag:

if su ==1:

continue

else

: flag =

false

count +=

1else

:if su ==0:

continue

else

: flag =

true

ifnot flag and seq[-1

]==0:

count +=

1return count * neg_to_pos

if __name__ ==

'__main__'

: n, x, y =

list

(map

(int

,input()

.strip(

).split())

) seq =

list

(map

(int

,input()

.strip(

).split())

) res = flip_corn(seq, x, y)

print

(res)

'''3 1 2

0 1 0

'''

暴力求解,針對數字個數n和回合數m生成乙個全排列,然後對每一種情況依次按序求解,返回最大值。

from itertools import permutations

defget_number

(value, cost):if

not value:

return

0 vu, cu = value[0]

, cost[0]

return vu + get_number(

[val-cu for val in value[1:

]], cost[1:

])defshuffle

(values, costs, n, m)

: index =

list

(permutations(

range(0

, n)

, m)

) res =

0for idx in index:

value =

[values[i]

for i in idx]

cost =

[costs[i]

for i in idx]

cur = get_number(value, cost)

# print(value, cost, cur)

if cur > res:

res = cur

return res

if __name__ ==

'__main__'

: n =

int(

input()

.strip())

m =int(

input()

.strip())

values =

list

(map

(int

,input()

.strip(

).split())

) costs =

list

(map

(int

,input()

.strip(

).split())

) res = shuffle(values, costs, n, m)

print

(res)

'''5

410 20 30 40 50

4 5 6 7 8

'''

(最近更新:2023年09月12日)

百度筆試題

一 選擇題 15分 共10題 1.在排序方法中,關鍵碼比較次數與記錄地初始排列無關的是 a.shell排序 b.歸併排序 c.直接插入排序 d.選擇排序 2.以下多執行緒對int型變數x的操作,哪幾個需要進行同步 a.x y b.x c.x d.x 1 3.void func 中,變數val的記憶體...

百度筆試題

一 選擇題 15分 共10題 1.已知乙個線性表 38,25,74,63,52,48 採用的雜湊函式為hash key key mod 7,將元素雜湊到表長為7的雜湊表中儲存。請選擇後面兩種衝突解決方法分別應用在該雜湊表上進行等概率成功查詢的平均查詢長度,拉鍊法 線性探測法 a.1.0 b.1.5 ...

百度筆試題

1 完成函式 size t foo unsigned int a1,size t al1,unsigned int a2,size t al2 其中a1和a2都為無符號陣列,al1和al2為陣列的長度,陣列的長度為偶數。無符號陣列由一對數字區間組成。如下例 a1 為 0,1,3,6,10,20 a2...