今日復習內容:做一下昨天的算法賽題目,試試基礎怎樣
小白挑戰賽一共6題,我只會5題,而且這5題是全對的,比起上次的兩題,已經有進步了。
第一題:六一獻禮
題目描述:
六月的陽光熱情似火,孩子們的笑聲洋溢著快樂。六一兒童節,是屬于每一位孩子的節日。
快樂成長,夢想啟航。正是無數孩子的天真無邪,才有了我們五彩斑斕的世界。
現在,未來慶祝這個屬于孩子們的節日,藍橋云課特別準備了一份禮物,希望能夠帶給每一位孩子,參賽者驚喜和歡樂。
請你輸出61,領取這份禮物!
輸入格式:
本題為填空題,無需輸入即可作答。
輸出格式:
輸出一個數字或字符串,領取禮物。
參考答案:
print("61")
?第二題:六一晚餐
題目描述:
隨著六一兒童節的臨近,藍橋學院的校長決定組織所有班級的學生外出共享一頓豐盛的晚餐以慶祝這一特殊的日子。餐廳已經準備好了n張餐桌,每個班級將占用一張餐桌。為了讓大家坐得舒適,他們需要為每張桌子添加x把椅子。
為了讓餐廳的分為更加和諧美好,校長提出了以下兩個要求。
1.每張桌子的所有椅子都必須是同一種顏色
2.每種顏色的椅子都至少要用到一張桌子上
現在,請你幫助校長判斷能否在滿足上述條件的基礎上安排椅子。
輸入格式:
第一行包含一個 整數T(1 <= T <= 10^2),表示數據組數。
對于每組數據:
第一行包括三個整數n,m,x(1 <= n,m,x <= 10^3),分別表示餐桌的數量,椅子顏色的數量和每張桌子需要的椅子數量。
第二行包含m個整數a1,a2,...am(1 <= ai <= 10^3),表示每種顏色的椅子數量。
輸出格式:
對于每組數據,如何能夠滿足校長的要求,就輸出Yes,否則輸出No。
參考答案:
t = int(input())
for _ in range(t):n,m,x = map(int,input().split())a = list(map(int,input().split()))a.sort()if a[0] < x:print("No")continueelse:if n < m:print("No")else:ans = 0for i in range(m):ans += a[i] // xif ans >= n:print("Yes")else:print("No")
?第三題:字符串連接計數
問題描述:
給定N個字符串S1,S2,...SN,請計算任選其中兩個不同的字符串Si,Sj,并按照SiSj的順序連接所形成的字符串T共有多少種不同的結果。
輸入格式:
輸入包括多行,第一行為一個整數N(2?<= N <= 100),表示字符串的數量;
接下來的N行,每行為一個字符串Si(1 <= |Si| <= 100),由英文小寫字母組成。
輸出格式:
輸出一個整數,表示不同結果的數量。
參考答案:
from itertools import permutations
n = int(input())
a = []
for i in range(n):a.append(input())
b = set()
for k in permutations(a,2):b.add("".join(k))
print(len(b))
?第四題:字符串加法
問題描述:
字符串王國也是存在加減乘除計算法則的,只不過與我們熟悉的法則有所不同。以加法為例,兩個數字13和14,按照正常的加法運算法則結果是27,但是按照字符串王國的加法運算法則結果是1314,即直接把兩個字符串進行拼接。
現在,給定兩個數字A和B,請你按照字符串王國的加法運算法則來計算A + B的值。
請注意答案可能很大,你需要將答案對10^9 + 7取模后再輸出。
輸入格式:
第一行輸入一個數字A(1 <= A <= 10^100000)
第二行輸入一個數字B(1 <= B <= 10^100000)
保證A和B都是合法數字。
輸出格式:
輸出一個整數表示答案。
參考答案:
a = int(input())
b = int(input())
s = str(a) + str(b)
mod = 1000000000 + 7
print(int(s) % mod)
?第五題:體育課
問題描述:
藍橋學院共有N名同學,他們正在體育老師的帶領下,玩丟手絹的游戲。具體的說,N名同學會圍成一個圈,體育老師會給其中一些同學拿上手絹,然后每一秒可以選擇一位帶手絹的同學進行以下操作:
將手絹傳遞給其右手邊(順時針)第一位未拿手絹的同學
將手絹傳遞給其左手邊(逆時針)第一位未拿手絹的同學
現在體育老師給同學們一個問題:最少需要多少秒才能讓所有拿手絹的同學靠在一起?
作為藍橋學院最聰明的學生,請你回答這個問題。
輸入格式:
第一行輸入一個整數N(1 <= N <= 10^5)表示同學的數量;
第二行輸入一個長度為N的字符串S(Si屬于[0,1]),Si = 0表示第i為同學未拿手絹,Si = 1表示第i位同學拿手絹。
輸出格式:
輸出一個整數表示答案。
參考答案:
import os
import sysn = int(input())
s = input()
l = s.find('0')
ans = 1
cur = 1
for i in range(l, n):if s[i] == s[i - 1] == '0':cur += 1 else:if cur > ans:ans = curl = icur = 1if cur > ans:ans = curprint(s.count('0') - ans)
?好了,這篇是小白挑戰賽,接下來我試試強者挑戰賽。
那這篇就寫到這里,下一篇繼續!