题目:
苏
理解:
字典,就是一种通过名字引用值的数据结构。这种结构类型是映射类型。它是一种key-value结构的键值对。键可以是数字、字符串、元组。就像英汉词典一样,可以通过查找某个特定的词语(键),从而找到它的定义(值)。
键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
由于10的九次方*2太大了,就想到把坐标存进字典连,每一个坐标(键)对应的值是一个列表,一个元素记录上下左右临界点的个数,第二个元素记录斜对角的元素个数。
总的时间复杂度为2^n.
代码:
def findup_down(a,b):
if ((abs(a[0]-b[0])==1) and (abs(a[1]-b[1])==0)) or ((abs(a[1]-b[1])==1) and (abs(a[0]-b[0])==0)):
return 1
return 0
def findangle(a,b):
if (a[0]-b[0],a[1]-b[1]) in [(-1,1),(1,1),(-1,-1),(1,-1)]:
return 1
return 0
n = int(input())
sto = dict()
for i in range(n):
lst = tuple(int(j) for j in input().split())
sto[lst] = [0,0]
for key in sto.keys():
if findup_down(lst,key):
sto[lst][0] += 1
sto[key][0] += 1
if findangle(lst,key):
sto[lst][1] += 1
sto[key][1] += 1
anslst = [0 for i in range(5)]
for value in sto.values():
if value[0] == 4:
anslst[value[1]] += 1
for i in anslst:
print(i)