CCF CSP认证 历年题目自练 Day22
试题编号: 201912-1
试题名称: 报数
时间限制: 1.0s
内存限制: 512.0MB
n=int(input())
dic={}
for i in range(4):
dic[i]=0
number=0
while(1):
number+=1
if number%7==0 or '7' in str(number):
dic[number%4]+=1
if (number-dic[1]-dic[2]-dic[3]-dic[0])>=n:
break
print(dic[1])#甲
print(dic[2])#乙
print(dic[3])#丙
print(dic[0])#丁
试题编号: 201912-2
试题名称: 回收站选址
时间限制: 1.0s
内存限制: 512.0MB
n=int(input()) #输入的存垃圾地点数
a=[0]*n #输入的垃圾地点的横坐标
b=[0]*n #输入的垃圾地点的纵坐标
t=0 #记录某点上下左右邻居位置是否存在垃圾
num=[0]*5 #记录满足条件的地方其四个对角的得分
#输入
for i in range(n):
a[i],b[i]=map(int,input().split())
#两层循环,对于每个坐标循环判断其上下左右是否存在。
#若存在,则判断其对角种几处有垃圾,把相应的值用num数组记录
for o in range(n):
t = 0
hx,hy=a[o],b[o]+1 #上的横纵坐标
rx,ry=a[o]+1,b[o]
bx,by=a[o],b[o]-1
lx,ly=a[o]-1,b[o]
ci=0
for i in range(n):
if (a[i]==hx and b[i]==hy )or (a[i]==rx and b[i]==ry) or (a[i]==bx and b[i]==by) or (a[i]==lx and b[i]==ly):
t+=1
k=0
if t==4:
#四个对角位置的横纵坐标
lhx ,lhy = a[o] - 1 , b[o] + 1
rhx ,rhy = a[o] + 1 , b[o] + 1
rbx ,rby = a[o] + 1 , b[o] - 1
lbx ,lby = a[o] - 1 , b[o] - 1
for i in range(n):
if (a[i] == lhx and b[i] == lhy) or (a[i] == rhx and b[i] == rhy) or (a[i] == lbx and b[i] == lby) or (
a[i] == rbx and b[i] == rby):
k = k + 1
num[k]+=1
#输出
for j in range(5):
print(num[j])
没啥好总结的,该干啥干啥。