oj網站地址:競碼編程-藍橋杯校內選拔賽(初賽)重現賽
試題A:第N個素數
def isPrime(n):
if n == 2:
return True
for i in range(2, n):
if n % i == 0:
return False
return True
count = 0
for i in range(2, 10000):
if isPrime(i):
count += 1
if count == 300:
print(i)
print(count)
break
試題B:coffee的簽到題
如果n是偶數,則無法全部進行染色,如果是奇數,則可以全部進行染色
n = int(input())
if n % 2 == 0:
print("no")
else:
print("yes")
試題C:不一樣的日期
YY,MM,DD,dd = map(int,input().split())
if dd > 0:
for i in range(1,dd+1):
DD += 1
if DD > 13:
MM += 1
DD = 1
if MM > 23:
YY += 1
MM = 1
else:
for i in range(1,abs(dd)+1):
DD -= 1
if DD <= 0:
MM -= 1
DD = 13
if MM <= 0:
YY -= 1
MM = 23
print(YY,MM,DD)
試題D:三位分節法
str = input()
str = str[::-1] # 字符串翻轉
ans = ""
cnt = 0
for i in range(len(str)):
if cnt == 3:
ans = ans + ","
cnt = 0
cnt += 1
ans = ans + str[i]
ans = ans[::-1]
print(ans)
試題E:水坑題
a,b = map(int, input().split())
ans = (a*b) % (pow(10,9)+7)
print(ans)
試題F:站隊
Python部分數據超時
n = int(input())
data = []
for i in range(1, n+1):
tmp = list(map(int, input().split()))
tmp.append(i)
data.append(tmp)
data = sorted(data,key=lambda x:x[1])
data = sorted(data,key=lambda x:x[0])
for i in range(n-1):
print(data[i][2], end=" ")
print(data[n-1][2])
試題G:冷門進制
試題H:拯救阿拉德大陸
n = int(input())
nums = list(map(int, input().split()))
ans = 0
for i in range(1,n+1):
for num in nums:
if i % num == 0:
ans += 1
break
else:
continue
print(ans)
試題J:饞嘴羊
import sys
sys.setrecursionlimit(1000000) # 限制遞歸深度爲
def dfs(x, y):
if x < 0 or y < 0 or x > n - 1 or y > m - 1 or vis[x][y] == 1 or arr[x][y] == '0':
return
vis[x][y] = 1
global ans
ans += 1
dfs(x - 1, y)
dfs(x + 1, y)
dfs(x, y + 1)
dfs(x, y - 1)
if __name__ == '__main__':
n, m ,x, y= map(int, input().split())
arr = []
for i in range(n):
str = input()
arr.append(list(str))
vis = [[0 for _ in range(m)] for _ in range(n)] # 判斷是否走過,0爲未走過,1爲走過
ans = 0
dfs(x,y)
print(ans)
連通塊問題
題目地址:http://oj.hzjingma.com/p/29?view=classic
def dfs(grid, i, j):
if not 0 <= i < len(grid) or not 0 <= j < len(grid[0]) or grid[i][j] == '.': return
grid[i][j] = '.'
dfs(grid, i + 1, j)
dfs(grid, i, j + 1)
dfs(grid, i - 1, j)
dfs(grid, i, j - 1)
dfs(grid, i + 1, j + 1)
dfs(grid, i - 1, j + 1)
dfs(grid, i - 1, j - 1)
dfs(grid, i + 1, j - 1)
if __name__ == '__main__':
n, m = map(int, input().split())
arr = []
for i in range(n):
str = input()
arr.append(list(str))
ans = 0
for i in range(n):
for j in range(m):
if arr[i][j] == 'W':
dfs(arr,i, j)
ans += 1
print(ans)