2018浙江省省賽 ZOJ4024 4036

2021-10-22 04:30:08 字數 3151 閱讀 8908

4024

題意找到這裡面是否有乙個數k,在k前面都是遞增,後面都是遞減

思路遍歷 判斷

#找乙個k位置,這個位置前都是遞增,這個位置後都是遞減

for _ in

range

(int

(input()

)): n=

int(

input()

) an=

list

(map

(int

,input()

.split())

) ai=an[0]

f=2for i in an[1:

]:if i>ai and f==2:

#判斷是遞增

ai=i

f=1elif i >ai and f==1:

ai=i

f==1elif iai=i

f=0elif iai=i

f=0else

: f=

2break

# print(i)

if f==0:

print

('yes'

)else

:print

('no'

)

題意給出兩個數列,每個對應位置的差個數相同的最多個數是多少

from collections import counter

for _ in

range

(int

(input()

)): n=

int(

input()

) d=

list

(map

(int

,input()

.split())

) s=

list

(map

(int

,input()

.split())

) c=

for i in

range

(n):

-s[i]

) an=counter(c)

.most_common(

)print

(an[0]

[1])

這裡求乙個 不用索引就可以列表減列表的方法

題意給出乙個陣列,1代表男生放在3,4組,0代表女生,放在1,2組,每個的下標加一(位數)代表他們所持有的寶石數,最後使得寶石數1+3=2+4,排排組,若排不出,輸出-1

思路寶石數總和(等差求和)為奇數,直接-1

個數為偶數,剛好一頭一尾一組,次頭次尾一組。

例:12345678 —1836一組—2745一組

個數為偶數,除了最後一組,方法如上

def

f(n,s,j )

: t =

0 out=

''for i in

range

(n):

if t ==

0and s[i]

=='1'

: t =

1- t

out +=

'3'elif t ==

0and s[i]

=='0'

: t =

1- t

out +=

'1'elif t ==

1and s[i]

=='1'

: t =

1- t

out +=

'4'else

: t =

1- t

out +=

'2'# print(t, out)

if i ==

(n //2)

-1and j==1:

# 剛好要取到一半的時候,翻一下

t =1- t

elif i ==

(n //2)

-1and j==0:

t=0# print(t,out)

return out

for _ in

range

(int

(input()

)): n=

int(

input()

) s=

input()

out=

''if((

(1+ n)

* n)//2

)%2==

1:out =

'-1'

elif n %2==

0:j =

1 nn=n

out += f(n, s, j)

else

: j =

0 n=n-

1 out+=f(n,s,j)

if s[-1

]=='0':

out +=

'2'else

: out +=

'4'print

(out)

這個是改過以後的,**沒那麼長,但容易卡時間吧

題意找幸運數,陣列內存在乙個數加上b後可以整除7

for _ in

range

(int

(input()

)): t,n=

map(

int,

input()

.split())

a=list

(map

(int

,input()

.split())

)for i in a:

if(i+n)%7

==0:print

('yes'

)break

else

:print

('no'

)

浙江省省賽 Now Loading

根據題意可以得出分母的範圍為 1 30,對於每個a j 是p i到p i 1 範圍內分母都為i 1,對於每個pi最多可以把a i 數列分為30組,所以列舉每個pi在a i 中進行二分查詢。然後用字首和處理下a i j。include using namespace std typedef long ...

2020浙江省省賽 B

傳送門 輸入n,k分別表示n個a i 體積物品,箱子最大容量為k,求第一種操作和第二種操作需要多少個箱子。有兩種操作,第一種操作是從1 i 1之間有沒有可以放下第i個物體體積的箱子,箱子編號越前面越好 第二種操作1 i 1之間有沒有可以放下第i個物體體積的箱子,使得箱子數最少。第二種操作很好想直接l...

ZOJ4029 浙江省賽

之前想到了先列舉logp a i k,然後找到對應區間,之後發現向下取整並無法直接用字首和去維護,於是就繼續二分k 2k,2k 3k這種區間,然而顯然是過不了的,tlegg,不過最後掛機也只能寫寫暴力了。結果發現k只有31,所以sum k i 來預處理a i k向下取整,的字首和,30 n的複雜度,...