1.计算偏移坐标围城的面积
小明从原点(0,0)开始沿着X轴前进,e为终点,过程中遇到 x offset y 则向Y轴方向偏移y,计算由X轴、x=e和走的路径围成的面积;
输入:
第一行:n e (中间用空格间隔,n:输入的点的个数,e:终点位置)
接下来n行:x y (x offset y 表示在坐标x处,向Y轴偏移y)
输出:
围成的面积
n,e=list(map(int,input().split())) w=[] arr_s=[] for i in range(n): w0=list(map(int,input().split())) if len(w)==0: w.append(w0) else: s=abs((w0[0]-w[-1][0])*w[-1][1]) arr_s.append(s) w.append([w0[0],w0[1]+w[-1][1]]) if w[-1][0]<e: s=abs((e-w[-1][0])*w[-1][1]) arr_s.append(s) #print(w) #print(arr_s) print(sum(arr_s))2.两列数据的组合排序
将编号为1-n的n个人首先按身高进行递增排序,如果身高相等,则按体重递增排序,如果身高、体重都一样,则按编号进行排序,最终输出排序好的编号。
输入
第一行: n
第二行:n个人的身高
第三行:n个人的体重
输出
排序的编码
n=int(input()) heights=[ [i+1,h] for i,h in enumerate(map(int,input().split()))] weights=list(map(int,input().split())) heights_sort=sorted(heights,key=lambda x:x[1]) for i in range(1,n): h_c=heights_sort[i][1] h_index=heights_sort[i][0] h_w=heights_sort[i][0] for j in range(i-1,-1,-1): if heights_sort[j][1]==h_c: h_w1=heights_sort[j][0] if weights[h_w1-1]>weights[h_w-1]: heights_sort[j+1],heights_sort[j]=heights_sort[j],heights_sort[j+1] elif weights[h_w1-1]==weights[h_w-1]: if h_index<heights_sort[j][0]: heights_sort[j + 1], heights_sort[j] = heights_sort[j], heights_sort[j + 1] else: break else: break result=[str(i) for i,h in heights_sort] print(" ".join(result))3.集合合并
如果广播站A和广播站B直接连接,广播站B和广播站C直接连接,则称广播站A和广播站C间接连接,A\B\C无论哪个广播站进行广播,三个都可以收到广播,自己可以收到自己的广播;给定N*N矩阵,N为广播站的个数,arr[i][j]=1(对称矩阵arr[i][i]=1)表示i,j直接连接,arr[i][j]=0表示i,j未直接连接,求最少几个广播站进行广播,所有广播站都可以收到广播。
输入
N*N矩阵
输出
最少广播站个数
data=[] d0=list(map(int,input().split())) data.append(d0) n=len(d0) for i in range(len(d0)-1): d= list(map(int, input().split())) data.append(d) servs=[set() for i in range(n-1)] for i in range(n-1): for j in range(i+1,n): if data[i][j]==1: servs[i].add(j) servs[i].add(i) for i in range(len(servs)): for j in range(i+1,len(servs)): if servs[i].intersection(servs[j]): servs[i].update(servs[j]) servs[j].clear() servs_len=0 servs_len_1=0 for i in range(len(servs)): servs_len+=len(servs[i]) if len(servs[i])>0: servs_len_1+=1 print(servs) if servs_len==0: print(n) else: print(n-servs_len+servs_len_1)