python ccf 题解历年100分(9年前两题,共45题)

一、第一题

在这里插入图片描述

1.1 2021年

202109-1数组推导

在这里插入图片描述

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-04 9:28
@Author : oax_knud
@File :202109-1数组推导.py
@IDE :PyCharm
"""
import math

num=int(input())
B=[]
B = list(map(int, input().split()))
sum_max=sum(B)
sum_min=B[0]
min=min(B)
flag=1
for i in range(num):
    if i==num-1:
        break
    if i==0 and B[i+1]==B[i]:
        flag=0
        sum_min=sum_min+0
    elif i!=num-1 and B[i+1]==B[i]:
        flag=0
    elif B[i+1]!=B[i]:
        sum_min=sum_min+B[i+1]
print(sum_max)
if flag==0:
    print(sum_min)
elif flag==1:
    print(sum_max)

202104-1灰色直方图

在这里插入图片描述

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-04 12:07
@Author : oax_knud
@File :202104-1灰色直方图.py
@IDE :PyCharm
"""

constraint=list(map(int,input().split()))
ans_list=[0 for i in range(constraint[2])]
for i in range(constraint[0]):
    row=[]
    row=list(map(int,input().split()))
    for k in range(constraint[1]):
        ans_list[row[k]]=ans_list[row[k]]+1
for i in range(constraint[2]):
    print(ans_list[i],end=" ")

1.2 2020年

202012-1期末预测之安全指数

在这里插入图片描述

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-04 16:46
@Author : oax_knud
@File :202012-1期末预测之安全指数.py
@IDE :PyCharm
"""
n=int(input())
score=[]
ws=[]
for i in range(n):
    row=list(map(int,input().split()))
    ws.append(row)
    score.append(row[0]*row[1])
print(max(sum(score),0))

202009-1称检测点查询

在这里插入图片描述

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 9:05
@Author : oax_knud
@File :202009-1称检测点查询.py
@IDE :PyCharm
"""
import math
n,X,Y=list(map(int,input().split()))#限制条件
distance=[]
for i in range(n):
    x,y=list(map(int,input().split()))
    temp_dis=math.sqrt((x-X)*(x-X)+(y-Y)*(y-Y))
    group=[]
    group.append((i+1))
    group.append(temp_dis)
    distance.append(group)
new_dis=sorted(distance,key=(lambda  x:x[1]),reverse=False)
print(new_dis[0][0])
print(new_dis[1][0])
print(new_dis[2][0])

202006-1线性分类器

在这里插入图片描述
在这里插入图片描述

n,m=map(int,input().split())
x=[]
y=[]
label=[]
for i in range(n):
    a,b,c=input().split()
    x.append(int(a))
    y.append(int(b))
    label.append(c)
for i in range(m):
    a,b,c=map(int, input().split())
    A_class=[]
    B_class=[]
    for j in range(n):
        if a+x[j]*b+y[j]*c<0:
            A_class.append(label[j])
        elif a+x[j]*b+y[j]*c>0:
            B_class.append(label[j])
    if len(list(set(A_class)))==1 and len(list(set(B_class)))==1:
        print('Yes')
    else:
        print('No')

1.3 2019年

201912-1报数

在这里插入图片描述

n=int(input())
count=0
jump=[0 for i in range(4)]
# name=["甲","乙","丙","丁"]
jump_index=0
jump_num=[]
for i in range(1,10000):
    if count==n:
        break
    if i%7==0 or i%10==7 or (i // 10)%10==7 or (i//100)==7:#跳
        jump[jump_index]+=1
        # print(name[jump_index],"跳了",i)
        jump_index=(jump_index+1)%4
        jump_num.append(i)
        continue
    # print(name[jump_index], "读了", i)
    count+=1
    jump_index=(jump_index+1)%4
for i in range(len(jump)):
    print(jump[i])

201909-1小明种苹果

在这里插入图片描述
在这里插入图片描述

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 19:40
@Author : oax_knud
@File :201909-1小明种苹果.py
@IDE :PyCharm
"""
N,M=list(map(int,input().split()))
apple_tree=[]
for i in range(N):
    row=list(map(int,input().split()))
    apple_tree.append(row)
max_apple=[]
sum_apple=0
for i in range(N):
    temp_apple=0
    for j in range(1,M+1):
        temp_apple+=abs(apple_tree[i][j])
        #temp_apple=abs(apple_tree[i][1]+apple_tree[i][2]+apple_tree[i][3])
    max_apple.append(temp_apple)
    sum_apple+=apple_tree[i][0]
sum_apple=sum_apple-sum(max_apple)
index_max=max_apple.index(max(max_apple))+1
print(sum_apple,index_max,max(max_apple))



201903-1小中大

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 19:29
@Author : oax_knud
@File :201903-1小中大.py
@IDE :PyCharm
"""
import math
n=int(input())
row=list(map(int,input().split()))
ans=[]
ans.append(max(row))
ans.append(min(row))
row.sort()
if n%2==0:
    num=round((row[len(row)//2]+row[len(row)//2-1])/2,1)
    if math.modf(num)[0]==0:
        num=int(num)
    ans.append(num)
elif n%2==1:
    ans.append(row[len(row)//2])
ans.sort(reverse=True)
for i in range(len(ans)):
    print(ans[i],end=" ")

1.4 2018年

201812-1小明上学

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 19:22
@Author : oax_knud
@File :201812-1小明上学.py
@IDE :PyCharm
"""
r,y,g=list(map(int,input().split()))
n=int(input())
time=0
for i in range(n):
    row=list(map(int,input().split()))
    if row[0]==0 or row[0]==1:
        time+=row[1]
    elif row[0]==2:
        time+=(row[1]+r)
    elif row[0]==3:
        continue
print(time)

201809-1卖菜

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 19:16
@Author : oax_knud
@File :201809-1卖菜.py
@IDE :PyCharm
"""
n=int(input())
row=list(map(int,input().split()))
ans=[]
for i in range(n):
    if i==0:
        ans.append(int((row[i]+row[i+1])/2))
    elif i==n-1:
        ans.append(int((row[i]+row[i-1])/2))
    else:
        ans.append(int((row[i]+row[i+1]+row[i-1])/3))
for i in range(n):
    print(ans[i],end=" ")

201803-1跳一跳

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 19:08
@Author : oax_knud
@File :201803-1跳一跳.py
@IDE :PyCharm
"""
row=list(map(int,input().split()))
length=len(row)
score=0
temp_two=2
for i in range(length-1):
    if row[i]==1:
        score+=1
        temp_two=2
    elif row[i]==2:
        if i==0 or row[i-1]==1:
            score+=temp_two
        elif row[i-1]==2:
            temp_two+=2
            score+=temp_two
print(score)

1.5 2017年

201712-1最小差值

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 19:03
@Author : oax_knud
@File :201712-1最小差值.py
@IDE :PyCharm
"""
n=int(input())
row=list(map(int,input().split()))
row.sort()
ans=[]
for i in range(1,n):
    temp=row[i]-row[i-1]
    ans.append(temp)
print(min(ans))

201709-1打酱油

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 18:58
@Author : oax_knud
@File :201709-1打酱油.py
@IDE :PyCharm
"""
n=int(input())
count=0
while n>0:
    if n>=50:
        n-=50
        count+=7
    elif n>=30:
        n-=30
        count+=4
    else:
        count+=(n//10)
        n=0
print(count)

201703-1分蛋糕

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 18:31
@Author : oax_knud
@File :201703-1分蛋糕.py
@IDE :PyCharm
"""
n,k=list(map(int,input().split()))
row=list(map(int,input().split()))
count=0
index=0
temp_sum=0
for i in range(n):
    temp_sum=sum(row[index:i+1])
    # ans.append(temp_sum)
    if temp_sum>=k:
        count+=1
        index=i+1
    else:
        continue
if temp_sum<k:
    count+=1
print(count)

1.6 2016年

201604-1折点计数

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 17:54
@Author : oax_knud
@File :201604-1折点计数.py
@IDE :PyCharm
"""
n=int(input())
row=list(map(int,input().split()))
count=0
for i in range(1,n-1):
    if row[i]<row[i+1] and row[i]<row[i-1]:
        count+=1
    elif row[i]>row[i+1] and row[i]>row[i-1]:
        count+=1
print(count)

201609-1最大波动

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 17:58
@Author : oax_knud
@File :201609-1最大波动.py
@IDE :PyCharm
"""
n=int(input())
row=list(map(int,input().split()))
abs_row=[]
for i in range(n-1):
    abs_row.append(abs(row[i]-row[i+1]))
print(max(abs_row))

201612-1中间数

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 18:01
@Author : oax_knud
@File :201612-1中间数.py
@IDE :PyCharm
"""
def cal_min_max(num,row):
    min_number=0
    for i in range(len(row)):
        if row[i]<num:
            min_number+=1
    max_number=len(row)-min_number-row.count(num)
    if max_number==min_number:
        return num
    return -1

n=int(input())
row=list(map(int,input().split()))
row.sort()
flag=0
if cal_min_max(row[0],row)==row[0]:
    print(row[0])
    flag=1
for i in range(1,n):
    if row[i]==row[i-1]:
        continue
    elif row[i]!=row[i-1]:
        if cal_min_max(row[i],row)==row[i]:
            print(row[i])
            flag=1
            break
if flag==0:
    print("-1")

1.7 2015年

201512-1数位之和

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 17:52
@Author : oax_knud
@File :201512-1数位之和.py
@IDE :PyCharm
"""
row=list(map(int,input()))
print(sum(row))

201509-1数列分段

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 17:49
@Author : oax_knud
@File :201509-1数列分段.py
@IDE :PyCharm
"""
n=int(input())
row=list(map(int,input().split()))
count=1
for i in range(n-1):
    if row[i]!=row[i+1]:
        count+=1
    elif row[i]==row[i+1]:
        continue
print(count)

201503-1图像旋转

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 16:53
@Author : oax_knud
@File :201503-1图像旋转.py
@IDE :PyCharm
"""
n,m=list(map(int,input().split()))
img=[]
for i in range(n):
    row=list(map(int,input().split()))
    img.append(row)
for i in range(m):
    for j in range(n):
        print(img[j][m-i-1],end=" ")
    print("")

1.8 2014年

201412-1门禁系统

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 16:49
@Author : oax_knud
@File :201412-1门禁系统.py
@IDE :PyCharm
"""
n=int(input())
row=list(map(int,input().split()))
num=[[i,0] for i in range(n+1)]
for i in range(n):
    id=row[i]
    num[id][1]+=1
    print(num[id][1],end=" ")

201409-1相邻数对

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 16:42
@Author : oax_knud
@File :201409-1相邻数对.py
@IDE :PyCharm
"""
n=int(input())
row=list(map(int,input().split()))
count=0
row.sort()
for i in range(n-1):
    if row[i+1]-row[i]==1:
        count+=1
print(count)

201403-1相反数

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 16:37
@Author : oax_knud
@File :201403-1相反数.py
@IDE :PyCharm
"""
N=int(input())
row=list(map(int,input().split()))
count=0
for i in range(N):
    if row[i]==0:
        continue
    for j in range(N-i):
        if row[i]+row[j+i]==0:
            count+=1
            row[j+i]=0
            break
print(count)

1.9 2013年

201312-1出现次数最多的数

# -*- coding: utf-8 -*-
"""
@Time : 2021-10-13 16:12
@Author : oax_knud
@File :201312-1出现次数最多的数.py
@IDE :PyCharm
"""
n=int(input())
row=list(map(int,input().split()))
num=[[i,0] for i in range(1,10001)]
for i in range(n):
    temp_num=row[i]
    num[temp_num-1][1]+=1
    # print(num[temp_num-1])
# print(num)
ans=sorted(num,key=(lambda x:x[1]),reverse=True)
print(ans[0][0])

第二题

在这里插入图片描述

2.1 2021年

2.2 2020年

202006-2稀疏向量

if __name__=="__main__":
    n,a,b=list(map(int,input().split()))
    sum=0
    vec={}
    for i in range(a):
        index,value=list(map(int,input().split()))
        vec[index]=value
    for i in range(b):
        index,value=list(map(int,input().split()))
        if index in vec:
            sum+=value*vec[index]
    print(sum)

202009-2风险人群筛查

n,k,t,xl,yd,xr,yu=list(map(int,input().split()))
stop_num,walk_num=0,0
for i in range(n):
    row=list(map(int,input().split()))
    count,stop,walk=0,0,0
    for j in range(t):
        temp_x=row[2*j]
        temp_y=row[2*j+1]
        if temp_x<=xr and temp_x>=xl and temp_y<=yu and temp_y>=yd:
            stop=1
            count+=1
            if count==k:
                walk=1
        else:
            count=0
    if stop==1:
        stop_num+=1
    if walk==1:
        walk_num+=1
print(stop_num)
print(walk_num)

2.3 2019年

201903-2二十四点

n=int(input())
for i in range(n):
    s=input()
    s=s.replace('x','*')
    s=s.replace('/','//')
    s=eval(s)
    if s==24:
        print('Yes')
    else:
        print('No')

201909-2小明种苹果(续)

def cal_sum(row):
    temp=row[1:]
    start=temp[0]
    for i in range(1,row[0]):
        if temp[i]>0:
            start=temp[i]
        elif temp[i]<=0:
            start+=temp[i]
    return start

def judge_drop(row):
    temp=row[1:]
    start=temp[0]
    for i in range(1,row[0]):
        if temp[i]>0:
            if start>temp[i]:
                return 1#掉落
        elif temp[i]<=0:
            start+=temp[i]
    return 0#没有掉落

def cal_group(circle):
    n=len(circle)
    e=0
    for i in range(1, n - 1):
        if circle[i - 1] == circle[i] == circle[i + 1] == 1:
            e += 1
    if circle[0] == circle[1] == circle[-1] == 1:
        e += 1
    if circle[0] == circle[-2] == circle[-1] == 1:
        e +=1
    return e

if __name__=="__main__":
    n=int(input())
    sum_tree=0
    drop_num=0
    flag=[]
    for i in range(n):
        row=list(map(int,input().split()))
        sum_tree=sum_tree+cal_sum(row)
        flag.append(judge_drop(row))
    print(sum_tree,end=" ")
    print(sum(flag),end=" ")
    ans=cal_group(flag)
    print(ans)

201912-2回收站选址

def cal_score(row,rabbish):
    score=0
    move_x=[1,1,-1,-1]
    move_y=[-1,1,-1,1]
    x=row[0]
    y=row[1]
    for i in range(4):
        temp_x=x+move_x[i]
        temp_y=y+move_y[i]
        if [temp_x,temp_y] in rabbish:
            score+=1
    return score

if __name__=="__main__":
    n=int(input())
    rabbish=[]
    for i in range(n):
        row=list(map(int,input().split()))
        rabbish.append(row)
    position=[]
    for i in range(n):
        temp_row=rabbish[i]
        x=temp_row[0]
        y=temp_row[1]
        if [x,y+1] in rabbish and [x,y-1] in rabbish and [x+1,y] in rabbish and [x-1,y] in rabbish:
            position.append(temp_row)
    score_list=[0 for i in range(5)]
    for i in range(len(position)):
        index_score=cal_score(position[i],rabbish)
        score_list[index_score]+=1
    for i in range(len(score_list)):
        print(score_list[i])

2.4 2018年(缺两个)

201803-2碰撞的小球

def move(ball_pos,j,flag,index):
    if j!=0 and ball_pos[j][1]==ball_pos[j-1][1]:
        index[j]=(index[j]+1)%2
        index[j-1]=(index[j-1]+1)%2
        ball_pos[j][1] = ball_pos[j][1] + flag[index[j]]
    elif j!=len(ball_pos)-1 and ball_pos[j][1]==ball_pos[j+1][1]:
        index[j]=(index[j]+1)%2
        index[j+1]=(index[j+1]+1)%2
        ball_pos[j][1] = ball_pos[j][1] + flag[index[j]]
    elif ball_pos[j][1]<L and ball_pos[j][1]>0:
        ball_pos[j][1] = ball_pos[j][1] + flag[index[j]]
    elif ball_pos[j][1]==0 or ball_pos[j][1]==L:
        index[j]=(index[j]+1)%2
        ball_pos[j][1] = ball_pos[j][1] + flag[index[j]]
    # print("位置:",ball_pos[j],",方向:",index[j])
    return ball_pos,index

if __name__=="__main__":
    n,L,t=list(map(int,input().split()))
    ball_position=list(map(int,input().split()))#球地址
    new_ball_pos=[]
    #初始化小球位置和索引
    for i in range(n):
        new_ball_pos.append([i,ball_position[i]])
    new_ball_pos=sorted(new_ball_pos,key=(lambda  x:x[1]),reverse=False)
    index=[0 for i in range(n)]#方向
    flag = [1, -1]#方向
    for i in range(t):
        # print("**************************************")
        for j in range(n):
            # print("第",i+1,"秒,第", j+1, "个小球正在移动!")
            new_ball_pos,index=move(new_ball_pos,j,flag,index)
    new_ball_pos = sorted(new_ball_pos, key=(lambda x: x[0]), reverse=False)
    for i in range(n):
        print(new_ball_pos[i][1],end=" ")

2.5 2017年

201703-2学生排队

def search_id(id,row,n):
    for i in range(n):
        if row[i][0]==id:
            return i
    return -1

n=int(input())
row=[[i,i] for i in range(1,n+1)]
count=int(input())
for i in range(count):
    id,move=list(map(int,input().split()))
    if move>0:
        row_id=search_id(id,row,n)
        old=row[row_id][1]
        row[row_id][1]+=move
        new=row[row_id][1]
        for j in range(n):
            if row[j][1]<=new and row[j][1]>old and j!=row_id:
                row[j][1]-=1
    elif move<0:
        row_id=search_id(id,row,n)
        old=row[row_id][1]
        row[row_id][1]+=move
        new=row[row_id][1]
        for j in range(n):
            if row[j][1]>=new and row[j][1]<old and j!=row_id:
                row[j][1]+=1
    else :
        continue
    row=sorted(row,key=(lambda x:x[1]),reverse=False)
for i in range(n):
    print(row[i][0],end=" ")

201709-2公共钥匙盒

#还钥匙找到最左边的空格
#按照钥匙编号顺序归还
#先还后取
def search_key(key_id,key):
    for i in range(len(key)):
        if key[i]==key_id:
            return i
    return -1

N,K=list(map(int,input().split()))
key=[i for i in range(1,N+1)]
action=[]#id,time,type(type=2取,type=1还)
for i in range(K):
    row=list(map(int,input().split()))
    action.append([row[0],row[1],2])
    action.append([row[0],row[1]+row[2],1])
action=sorted(action,key=(lambda x:(x[1],x[2],x[0])))#按照时间排序
for i in range(len(action)):
    if action[i][2]==2:
        position=search_key(action[i][0],key)
        key[position]=-1
    elif action[i][2]==1:
        for j in range(N):
            if key[j]==-1:
                key[j]=action[i][0]
                break
for i in range(N):
    print(key[i],end=" ")

201712-2游戏

n,k=list(map(int,input().split()))
flag=[1 for i in range(n)]
number=1
index=0#index=(index+1)%n
while sum(flag)!=1:
    if flag[index]==1:
        # print("第", index + 1, "号小朋友报数:", number)
        if number%10==k or number%k==0:
            flag[index]=0
            # print("淘汰")
        index=(index+1)%n
        number+=1
    elif flag[index]==0:
        index=(index+1)%n
print(flag.index(1)+1)

2.6 2016年

201604-2俄罗斯方块

square=[]
for i in range(15):
    row=list(map(int,input().split()))
    square.append(row)
xz=[]
xz_rc=[]
for i in range(4):
    row=list(map(int,input().split()))
    xz.append(row)
n=int(input())
max_col=-1
min_col=5
for i in range(4):
    for j in range(4):
        if xz[i][j]==1:
            xz_rc.append([i,j+n-1])
            max_col=max(max_col,i)
            min_col=min(min_col,i)
# print(xz_rc)
count=max_col-min_col+1
ans_row=15-count
# print(count)
flag=0
for i in range(15-count):
    # print("i=",i)
    for item in xz_rc:
        temp_row=item[0]+i-min_col
        temp_col=item[1]
        # print(temp_row,temp_col)
        if square[temp_row+1][temp_col]==1:
            ans_row=min(ans_row,i)
            flag=1
            # print("ans_row=",ans_row)
    if flag==1:
        break
# print("ans:",ans_row)
for item in xz_rc:
    square[item[0]-min_col+ans_row][item[1]]=1
for i in range(15):
    for j in range(10):
        print(square[i][j],end=" ")
    print()

201609-2火车购票

#number=i行j列 number=i*5+(j+1)
n=int(input())
row=list(map(int,input().split()))
#初始化座位
chair=[]
for i in range(20):
    temp_ticket=[0 for i in range(5)]
    chair.append(temp_ticket)
#输出车票编号
for i in range(len(row)):
    ticket=row[i]
    flag = 0  # 没有连续车票
    #判断是否有连续的
    for j in range(20):
        if flag==1:
            break
        for k in range(5):
            if flag==1:
                break
            if chair[j][k]==0 and ticket<=(5-k):
                flag=1
                for m in range(k,ticket+k):
                    print(j*5+(m+1),end=" ")
                    chair[j][m]=1
    #若没有连续
    if flag==0:
        for j in range(20):
            if ticket==0:
                break
            for k in range(5):
                if ticket==0:
                    break
                if chair[j][k]==0:
                    print(j*5+(k+1),end=" ")
                    ticket-=1
    print()

201612-2工资计算

T=int(input())
if T<=3500:
    print(T)
elif T<=4955:
    print((int)(3500+((T-3500)/0.97)))
elif T<=7655:
    print((int)(3500+(T-4955)/0.9+1500))
elif T<=11255:
    print((int)(3500+(T-7655)/0.8+4500))
elif T<=30755:
    print((int)(3500+(T-11255)/0.75+9000))
elif T<=44755:
    print((int)(3500+(T-30755)/0.7+35000))
elif T<=61005:
    print((int)(3500+(T-44755)/0.65+55000))
elif T<=100000:
    print((int)(3500+(T-61005)/0.55+80000))

2.7 2015年

201503-2数字排序

n=int(input())
num=list(map(int,input().split()))
number=[[i,0] for i in range(1005)]
for i in range(n):
    temp=num[i]
    number[temp][1]+=1
ans=sorted(number,key=(lambda x:x[1]),reverse=True)
for i in range(n):
    if ans[i][1]!=0:
        print(ans[i][0],ans[i][1])

201509-2日期计算

def judge_year(year):
    if year%400==0:
        return 1
    elif year%4==0 and year%100!=0:
        return 1
    else:
        return -1

n=int(input())
number=int(input())
day_normal=[31,28,31,30,31,30,31,31,30,31,30,31]
day_r=[31,29,31,30,31,30,31,31,30,31,30,31]
sum_year=0
count_day=[]
if judge_year(n)==1:
    count_day=day_r
elif judge_year(n)==-1:
    count_day=day_normal
for i in range(12):
    sum_year+=count_day[i]
    if sum_year==number:
        print(i+1)
        print(count_day[i])
        break
    elif sum_year>number:
        print(i+1)
        print(count_day[i]-(sum_year-number))
        break
    elif sum_year < number:
        continue

201512-2消除类游戏

import copy
n,m=list(map(int,input().split()))
color=[]
for i in range(n):
    row=list(map(int,input().split()))
    color.append(row)
ans=copy.deepcopy(color)
for i in range(n):
    for j in range(m-2):
        if color[i][j]==color[i][j+1] and color[i][j+1]==color[i][j+2]:
            ans[i][j]=0
            ans[i][j+1]=0
            ans[i][j+2] = 0
for i in range(m):
    for j in range(n-2):
        if color[j][i]==color[j+1][i] and color[j+1][i]==color[j+2][i]:
            ans[j][i]=0
            ans[j+1][i]=0
            ans[j+2][i] = 0
for i in range(n):
    for j in range(m):
        print(ans[i][j],end=" ")
    print()

2.8 2014年

201403-2窗口

N,M=list(map(int,input().split()))
windows=[]
for i in range(N):
    row=list(map(int,input().split()))
    row.append(N-i)
    row.append(i+1)
    windows.append(row)
mouse=[]
for i in range(M):
    row=list(map(int,input().split()))
    mouse.append(row)
for i in range(M):
    windows=sorted(windows,key=(lambda x:x[4]),reverse=False)
    flag=0
    for j in range(len(windows)):
        if flag==0 and (mouse[i][0]>=windows[j][0] and mouse[i][0]<=windows[j][2]) and (mouse[i][1]>=windows[j][1] and mouse[i][1]<=windows[j][3]):
            windows[j][4]=1
            print(windows[j][5])
            flag=1
        else:
            windows[j][4]+=1
    if flag==0:
        print("IGNORED")

201409-2画图

n=int(input())
draw_map=[]
for i in range(102):
    row=[0 for j in range(102)]
    draw_map.append(row)
for i in range(n):
    x1,y1,x2,y2=list(map(int,input().split()))
    for x in range(x1,x2):
        for y in range(y1,y2):
            draw_map[x][y]=1
sum_map=0
for i in draw_map:
    sum_map+=sum(i)
print(sum_map)

201412-2Z字形扫描

#Z字形扫描
n=int(input())
img=[]
for i in range(n):
    row=list(map(int,input().split()))
    img.append(row)

direct=[[0,1],[1,0],[1,-1],[-1,1]]
east=0
south=1
southwest=2
northeast=3
#输出左上三角
row,col=0,0
next=east
print(img[row][col],end=" ")
while row!=n-1 or col!=n-1 :
    row+=direct[next][0]
    col+=direct[next][1]
    print(img[row][col],end=" ")
    if next==east and row==0:#初始横向
        next=southwest
    elif next==east and row==n-1:#
        next=northeast
    elif next==south and col==0:
        next=northeast
    elif next==south and col==n-1:
        next=southwest
    elif next==southwest and row==n-1:
        next=east
    elif next==southwest and col==0:
        next=south
    elif next==northeast and col==n-1:
        next=south
    elif next==northeast and row==0:
        next=east

2.9 2013年

201312-2ISBN号码

isbn=list(input().split('-'))
end_num=isbn[3]
count=1
sum=0
flag=False
for i in range(len(isbn)):
    for j in range(len(isbn[i])):
        num=int(isbn[i][j])
        sum+=count*num
        count+=1
        if count==10:
            flag=True
            break
    if flag==True:
        break
ys=str(sum%11)
if ys==end_num or (ys=='10' and end_num=='X'):
    print("Right")
else:
    end_num=sum%11
    if end_num!=10:
        print(isbn[0]+"-"+isbn[1]+'-'+isbn[2]+'-'+str(end_num))
    elif end_num==10:
        print(isbn[0] + "-" + isbn[1] + '-' + isbn[2] + '-X')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oax_knud

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值