CCF201912-02(python)

题目:

在这里插入图片描述

理解:

字典,就是一种通过名字引用值的数据结构。这种结构类型是映射类型。它是一种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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值