# 第十一届蓝桥杯大赛软件类省赛第二场C/C++大学B组（python解答）

``````res = 0
for i in range(1, 2021):
res += str(i).count('2')
print(res)

``````

``````def func(a,b):
x = a % b
while (x != 0):
a = b
b = x
x = a % b
return b

num=0
for i in range(1,2021):
for j in range(1,2021):
if func(i,j)==1:
num+=1
print(num)

``````

``````第n行第n列为：(n-1)^2 +n^2
``````
``````print((20 - 1)**2 + 20**2)
``````

datetime真省事

``````import datetime
start = datetime.date(2000, 1, 1)
end = datetime.date(2020, 10, 2)
res = 0
while start != end:
if start.day == 1 or start.weekday() == 0 :
res += 2
else:
res += 1
start += datetime.timedelta(days=1)
print(res)
``````

``````from itertools import combinations
# 并查集模板
class UnionFind:
def __init__(self, size: int):
self.count = size
self._father = {}
for i in range(size):
self._father[i] = i

self.weight = [1] * size

if x not in self._father:
self._father[x] = x

def find(self, x):
root = x
while self._father[root] != root:
root = self._father[root]

# 路径压缩
while x != root:
origin_root = self._father[x]
self._father[x] = root
x = origin_root

return root

def merge(self, x: int, y: int):
root_x = self.find(x)
root_y = self.find(y)
if root_x != root_y:

if self.weight[root_x] < self.weight[root_y]:
root_x, root_y = root_y, root_x

self._father[root_y] = root_x
self.weight[root_x] += self.weight[root_y]
self.count -= 1
if root_x == root_y:
return False

def is_connected(self, x, y):
return self.find(x) == self.find(y)

res = 0
list1 = [0, 1, 2, 3, 4, 5, 6]
a = len(list1)
for i in range(1, a+1):
for item in (combinations(list1, i)):
n = len(item)
uf = UnionFind(n)
for j in range(n):
for k in range(j+1,n):
if abs(item[j] - item[k]) == 1 or (item[j] == 0 and item[k] == 5) or (item[j] == 1 and item[k] == 6) or (item[j] == 2 and item[k] == 6) or (item[j] == 4 and item[k] == 6):
uf.merge(j, k)
if uf.count == 1:
res += 1
print(res)
``````

``````n = int(input())
passing = 0
excellence = 0
for i in range(n):
score = int(input())
if score >= 60:
passing += 1
if score >= 85:
excellence += 1
pass_rate = passing/n*100
excellence_rate = excellence/n*100
print(str(round(pass_rate))+'%')
print(str(round(excellence_rate))+'%')
``````

``````import datetime

n = str(input())
m = str(99991231)
def huiWenRi(start, end):

s = datetime.datetime.strptime(start, '%Y%m%d')
e = datetime.datetime.strptime(end, '%Y%m%d')
while s <= e:  # 枚举日期
string = s.strftime("%Y%m%d")
if string == string[::-1]:
print(string)
break
s += datetime.timedelta(1)

def ababbaba(start, end):

s = datetime.datetime.strptime(start, '%Y%m%d')
e = datetime.datetime.strptime(end, '%Y%m%d')
while s <= e:  # 枚举日期
string = s.strftime("%Y%m%d")
if string[0:2] == string[2:4] == string[5:3:-1] == string[7:5:-1]:
print(string)
break
s += datetime.timedelta(1)
huiWenRi(n,m)
ababbaba(n,m)
``````

``````list1=list(input())
list2=[-1 for i in range(26)]
count=0

for i in range(len(list1)):
index=ord(list1[i])-ord('a')
count+=(len(list1)-i)*(i-list2[index])
list2[index]=i

print(count)
``````

``````n1=eval(input())
ls=[tuple(map(int,input().split(" "))) for i in range(n1)]
se=set(ls)
ls=list(se)
del se
result=0
if ls:
result=2
for i in range(1,len(ls)):
a1,b1=ls[i]
se=set()
for j in range(i):
a2,b2=ls[j]
if a1==a2:
pass
else:
x=(b1-b2)/(a1-a2)
y=a1*x+b1