日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【CSDN周赛第38期】Python题解

發(fā)布時間:2024/3/13 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【CSDN周赛第38期】Python题解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這次題目不怎么難,基本上都在周賽中出現(xiàn)過,python代碼附上。

一.代謝寫匿名信

這個沒有全過,有一個沒過,得分率9/10,檢查的時候反過來檢查剛剛好檢查到這里就沒檢查了就沒發(fā)現(xiàn)。所以不知道是什么情況過不了。

題目描述
小Q想要匿名舉報XX領(lǐng)導不務(wù)正業(yè)!小Q害怕別人認出他的字跡。 他選擇從報紙上剪裁下來英文字母組成自己的舉報信。 現(xiàn)在小Q找來了報紙,和自己的舉報信的Txt, 你能幫他確定下是否能夠完成匿名信嗎?
輸入描述:
第一行輸入報紙上的英文。 第二行輸入小Q匿名信的內(nèi)容。 (1<=len(str)<=10000)
輸出描述:
如果能完成輸出”Yes”,否則輸出”No” (區(qū)分大小寫,不考慮空格)
示例
示例1
輸入
Asdadsadas dsadas
das
輸出
Yes class Solution:def __init__(self) -> None:passdef solution(self, words, msg):result = None# TODO: 請在此編寫代碼d = {}for i in msg:d[i] = 0for i in msg:d[i] += 1for i in words:if i in d and d[i] > 0:d[i] -= 1if sum(d.values()) == 0:result = 'Yes'else:result = 'No'return resultif __name__ == "__main__":words = input().strip()msg = input().strip()sol = Solution()result = sol.solution(words, msg)print(result)

二.尋因找祖

題目描述
尋找因子個數(shù)為n的最小整數(shù)x
輸入描述:
輸入整數(shù)n。(1<=n<=1000)
輸出描述:
輸出x。
示例1
輸入 3
輸出 4
class Solution:def __init__(self) -> None:import mathself.log = 1e10self.a = [0 for i in range(1000)]self.x = int()self.p = [2,3,5,7,11,13,17,19,23,29,31,37,39,41,43]self.l = [math.log(x) for x in self.p]passdef dfs(self, d, n, m, y):if y > self.log:return 0if n == 1:self.log = yself.x = 1for i in range(d):self.x *= self.p[i] ** self.a[i]return 0for i in range(1, m+1):if i*i > n:breakif n % i == 0:if i > 1:self.a[d] = i - 1self.dfs(d+1, n/i, i, y+self.l[d]*(i-1))if n / i <= m and n / i != i:self.a[d] = int(n/i) - 1self.dfs(d+1, i, int(n/i), y+self.l[d]*(n/i-1))def solution(self, n):result = None# TODO: 請在此編寫代碼self.dfs(0, n, n, 0)result =self.xreturn result if __name__ == "__main__":n = int(input().strip())sol = Solution()result = sol.solution(n)print(result)

三.小Q新式棋盤

題目描述
已知棋盤大小為n*n。 每個位置都有自己的權(quán)值q。 該棋盤中有多少對行權(quán)值和小于列權(quán)值和。
輸入描述:
第一行輸入整數(shù)n。(1<=n<=100)表示棋盤的大小 以下n行每行輸入n個整數(shù)表示棋子的權(quán)值。(1<=a<=1000)
輸出描述:
輸出小Q的分值。
示例1
輸入:
3
1 2 3
1 2 3
1 2 3
輸出:
3
示例2
輸入:
3
5 7 8
4 5 3
1 6 6
輸出:
4 class Solution:def __init__(self) -> None:passdef solution(self, n, vector):result = None# TODO: 請在此編寫代碼sum_r = [sum(i) for i in vector]sum_c = [0 for i in range(n)]for i in range(n):for j in range(n):sum_c[i] += vector[j][i]sum_r.sort()sum_c.sort()sum_r = sum_r[::-1]sum_c = sum_c[::-1]sum_c.append(0)result = 0i = 0j = 0while i < n:if sum_r[i] >= sum_c[j]:result += ji += 1else:j += 1return resultif __name__ == "__main__":n = int(input().strip())vector = []for i in range(n):vector.append([int(item) for item in input().strip().split()])sol = Solution()result = sol.solution(n, vector)print(result)

四.拯救公主

題目描述
在Flower Kingdom里,住著一位美麗的公主Ana,有一天Ana得了一種怪病,神醫(yī)告知國王,在遙遠的幽谷中有一種藥能治愈Ana,但是神醫(yī)只有一份不完整的地圖,地圖的描述如下:
該地圖的共有3行,第一行有m列,m為奇數(shù),第二行有m+1列,第三行有m+2列;
每一行用一個字符串表示,只有【兩種字符】;'.'表示草地,可以從它上面通過,'*'表示巖石,每一行最多一個'*'
入口在左上角,由于在對角線方向上,因此即使對角線兩邊都有巖石,但是縫隙較大,人可以通過,故人可以向八個方向行走;
真實地圖是由該地圖的【每一行無限循環(huán)】得到的,這種神奇的藥草就生長在第x行第y列的草地上,藥草可能會在巖石上;
國王決定派遣勇敢的騎士David前去尋找拯救公主的解藥;現(xiàn)在聰明的你是否知道David能否找到該藥?
輸入描述:
第一行輸入T表示測試用例組數(shù),接下來每組測試用例分別輸入
m (1<m<1000,x(1<=x<=3).
y(1<=y<=1e9);
再接下來輸入三行字符串,長度分別為m,m+1,m+2;
輸出描述:
每個測試用例,輸出YES或者NO
示例1
輸入
1
3 1 10
.*.
...*
..*..
輸出
NO class Solution:def __init__(self) -> None:passdef solution(self, arr, vec):result = None# TODO: 請在此編寫代碼m, x, y = arrrocks = [y, y, y]for i in range(3):for j in range(m+i):if vec[i][j] == '*':rocks[i] = j+1breakif (y-rocks[x-1]) % (m+x-1) == 0:return 'NO'tmp = []up = min(y, m*(m+1)*(m+2))while rocks[2] < up:tmp.append(rocks[2])rocks[2] += m+2for i in range(1,-1,-1):new_tmp = []while rocks[i] < up:if rocks[i] in tmp:new_tmp.append(rocks[i])rocks[i] += m+itmp = new_tmpif new_tmp:result = 'NO'else:result = 'YES'return resultif __name__ == "__main__":sol = Solution()T = int(input().strip())for i in range(T):arr = [int(item) for item in input().strip().split()]vec = []for i in range(3):vec.append(input().strip())result = sol.solution(arr, vec)print(result)

總結(jié)

以上是生活随笔為你收集整理的【CSDN周赛第38期】Python题解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。