CCF认证模拟-201403-2-窗口-python

题目

在这里插入图片描述

思路

将所有窗口信息放入一个list,规定最后放入的窗口信息为最上层窗口,依次向前为前面窗口
再定义一个相同的list1,使之前的list进行窗口变换,list1用于查看顶层窗口的索引值
若一个点不在最上层窗口,则进入下一层,以此类推,直到点位于某一窗口
此时相当于将这一窗口与原来最顶层的窗口进行了换位

此处需要理解题目中所给定的 剩余窗口的层次顺序不变 所以是直接与最顶层换位置

此题目并不是一个一个窗口去进行尝试,直到找到位于最上层的窗口
如果题目是这样,那么就需要将正确层次的 前几层 进行 倒序 存入列表,可以略微增加题目难度

代码实现

a = input().split()
# 窗口
b = int(a[0])
# 点
c = int(a[1])

w_list = []
w_list1 = []
d_list = []
for i in range(b):
    d = input().split()
    w_list.append(d)
    w_list1.append(d)

for j in range(c):
    e = input().split()
    d_list.append(e)

for i in range(c):
    g = d_list[i][0]
    h = d_list[i][1]
    for j in range(1, int(b)+1):
        if int(w_list[b-j][0]) <= int(g) <= int(w_list[b-j][2]) and int(w_list[b-j][1]) <= int(h) <= int(w_list[b-j][3]):
            print(w_list1.index(w_list[b-j])+1)
            x = w_list[b-1]
            w_list[b-1] = w_list[b-j]
            w_list[b-j] = x
            break
    else:
        print("IGNORED")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值