賽碼網演算法 格仔遊戲

2021-10-01 03:51:36 字數 1324 閱讀 2818

格仔遊戲

題目描述

有n個格仔,從左到右放成一排,編號為1-n。

共有m次操作,有3種操作型別:

1.修改乙個格仔的權值,

2.求連續一段格仔權值和,

3.求連續一段格仔的最大值。

對於每個2、3操作輸出你所求出的結果。

輸入輸入第一行兩個整數,n表示格仔個數,m表示操作次數,n和m中間用空格隔開;

接下來輸入n行,每行乙個整數表示乙個格仔的權值

接下來輸入m行,每行有三個整數,中間用空格隔開;第乙個是選擇的操作型別1-3,第二和第三個整數是操作格仔的編號。

樣例輸入

3 3789

2 1 3

3 1 3

2 1 2

輸出若執行1操作則無輸出

若執行2和3操作則輸出乙個整數

樣例輸出249

15這道題難度不大,我用python3來實現,提供給大家參考:

1

#coding:utf8

2 nm = input( ).split("")

3#n個格仔 m個操作次數

4 n =int( nm[0] )

5 m = int( nm[1] )67

#輸入n個格仔的權值

8 boxes =

9for i in

range(n):

1011

#接下來進行m次操作

12for i in

range(m):13#

記錄操作編號

14 operation = [ int(i) for i in input().strip("

").split("

") ]15#

修改權值 輸入1

16if operation[0] == 1:

17 boxes[operation[1] -1 ] = operation[2]

18else

:19 start = operation[1] -1

20 end = operation[2]21#

求一段之間權值的和 輸入2

22if operation[0] == 2:

23print

( sum( boxes[ start : end ] ) )24#

求一段之間最大權值 輸入3

25elif operation[0] == 3:

26print

( max( boxes[ start : end ] ) )

27else:28

pass

翻轉陣列,來自賽碼網,初級演算法

翻轉陣列 題目描述 給定乙個長度為n的整數陣列a,元素均不相同,問陣列是否存在這樣乙個片段,只將該片段翻轉就可以使整個陣列公升序排列。其中陣列片段 l,r 表示序列a l a l 1 a r 原始陣列為 a 1 a 2 a l 2 a l 1 a l a l 1 a r 1 a r a r 1 a ...

賽碼網 分蘋果問題

分蘋果 題目描述 果園裡有堆蘋果,n 1 n 9 只熊來分。第一隻熊把這堆蘋果平均分為n份,多了乙個,它把多的乙個扔了,拿走了乙份。第二隻熊把剩下的蘋果又平均分成n份,又多了乙個,它同樣把多的乙個扔了,拿走了乙份,第 三 第四直到第n隻熊都是這麼做的,問果園裡原來最少有多少個蘋果?輸入 輸入1個整數...

翻格仔遊戲

前幾天,朋友玩乙個解謎類的遊戲。中間有乙個關卡,大概是這樣的 有乙個5 5的板子,初始時,每個格仔都是背面朝上。我們可以手動翻轉任意乙個格仔,但其上下左右 如果有的話 的格仔也會隨之一起翻轉,問怎麼翻,可以將所有格仔都翻到正面朝上。當時蠻無聊,那就寫段 試試看吧。這裡,手動翻我們定義為主動,而被動當...