前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >201403-2

201403-2

作者头像
Max超
发布于 2019-01-21 06:45:59
发布于 2019-01-21 06:45:59
47800
代码可运行
举报
运行总次数:0
代码可运行

试题编号: 201403-2 试题名称: 窗口 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域。窗口的边界上的点也属于该窗口。窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。   当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的层次顺序不变。如果你点击的位置不属于任何窗口,则系统会忽略你这次点击。   现在我们希望你写一个程序模拟点击窗口的过程。 输入格式   输入的第一行有两个正整数,即 N 和 M。(1 ≤ N ≤ 10,1 ≤ M ≤ 10)   接下来 N 行按照从最下层到最顶层的顺序给出 N 个窗口的位置。 每行包含四个非负整数 x1, y1, x2, y2,表示该窗口的一对顶点坐标分别为 (x1, y1) 和 (x2, y2)。保证 x1 < x2,y1 2。   接下来 M 行每行包含两个非负整数 x, y,表示一次鼠标点击的坐标。   题目中涉及到的所有点和矩形的顶点的 x, y 坐标分别不超过 2559 和  1439。 输出格式   输出包括 M 行,每一行表示一次鼠标点击的结果。如果该次鼠标点击选择了一个窗口,则输出这个窗口的编号(窗口按照输入中的顺序从 1 编号到 N);如果没有,则输出”IGNORED”(不含双引号)。 样例输入 3 4 0 0 4 4 1 1 5 5 2 2 6 6 1 1 0 0 4 4 0 5 样例输出 2 1 1 IGNORED 样例说明   第一次点击的位置同时属于第 1 和第 2 个窗口,但是由于第 2 个窗口在上面,它被选择并且被置于顶层。   第二次点击的位置只属于第 1 个窗口,因此该次点击选择了此窗口并将其置于顶层。现在的三个窗口的层次关系与初始状态恰好相反了。   第三次点击的位置同时属于三个窗口的范围,但是由于现在第 1 个窗口处于顶层,它被选择。   最后点击的 (0, 5) 不属于任何窗口。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<iostream>
#include<vector>
using namespace std;

struct window{
    int x1,y1;
    int x2,y2;
    int id;
};

vector<window> ve;
int n,m;
void operate(int x,int y)
{
    vector<window>::iterator it;
    int i;
    for( i= n-1; i>=0; i--)
    {
        int x1 = ve[i].x1;
        int x2 = ve[i].x2;
        int y1 = ve[i].y1;
        int y2 = ve[i].y2;
        int id = ve[i].id;
        if(x>=x1&&x<=x2&&y>=y1&&y<=y2)
        {
            it = ve.begin()+i;
            ve.erase(it);
            window w;
            w.x1 = x1;w.x2 = x2;w.y1 = y1;w.y2 = y2;
            w.id = id;
            ve.push_back(w);
            cout << id<<endl;
            break;
        }
    }
    if(i<0)
    {
        cout << "IGNORED"<<endl;
    }
}
int main()
{


    cin >> n >> m;
    for(int i = 0;i < n; i++)
    {
        window w;
        cin >> w.x1 >>w.y1>>w.x2>>w.y2;
        w.id = i+1;
        ve.push_back(w);
    }
    for(int i = 0; i < m; i++)
    {
        int x,y;
        cin >> x >> y;
        operate(x,y);
    }
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年10月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
题目练习之综合运用
平衡二叉树给出的性质是它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。这里我们需要特别注意的是左右两个子树都是一棵平衡二叉树,所以我们还需要对左右子树进行判断~
用户11352420
2025/05/20
640
题目练习之综合运用
CCF考试——201403-2 窗口
在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域。窗口的边界上的点也属于该窗口。窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。   当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的层次顺序不变。如果你点击的位置不属于任何窗口,则系统会忽略你这次点击。   现在我们希望你写一个程序模拟点击窗口的过程。
AI那点小事
2020/04/18
4580
用Python做一个游戏辅助脚本,完整编程思路分享!
简述:本文将以4399小游戏《 宠物连连看经典版2 》作为测试案例,通过识别小图标,模拟鼠标点击,快速完成配对。对于有兴趣学习游戏脚本的同学有一定的帮助。
python学习教程
2020/08/31
4.3K0
用Python做一个游戏辅助脚本,完整编程思路分享!
趣味问题:画图(c++实现)
描述:在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色。下图给出了一个画了两个矩形的例子。第一个矩形是(1,1) 到(4, 4),用绿色和紫色表示。第二个矩形是(2, 3)到(6, 5),用蓝色和紫色表示。图中,一共有15个单位的面积被涂上颜色,其中紫色部分被涂了两次,但在计算面积时只计算一次。在实际的涂色过程中,所有的矩形都涂成统一的颜色,图中显示不同颜色仅为说明方便。
用户2038589
2018/09/06
1.1K0
窗口
问题描述 试题编号: 201403-2 试题名称: 窗口 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域。窗口的边界上的点也属于该窗口。窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。   当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的层次顺序不变。如果你点击的位置不属于任何窗口,则系统会忽略你这次点击。   现在我们希望你写一个程序模拟点击窗口的过程。 输入格式   输入的第一行有两个正整数,即 N 和 M。(1 ≤ N ≤ 10,1 ≤ M ≤ 10)   接下来 N 行按照从最下层到最顶层的顺序给出 N 个窗口的位置。 每行包含四个非负整数 x1, y1, x2, y2,表示该窗口的一对顶点坐标分别为 (x1, y1) 和 (x2, y2)。保证 x1 < x2,y1 2。   接下来 M 行每行包含两个非负整数 x, y,表示一次鼠标点击的坐标。   题目中涉及到的所有点和矩形的顶点的 x, y 坐标分别不超过 2559 和  1439。 输出格式   输出包括 M 行,每一行表示一次鼠标点击的结果。如果该次鼠标点击选择了一个窗口,则输出这个窗口的编号(窗口按照输入中的顺序从 1 编号到 N);如果没有,则输出”IGNORED”(不含双引号)。 样例输入 3 4 0 0 4 4 1 1 5 5 2 2 6 6 1 1 0 0 4 4 0 5 样例输出 2 1 1 IGNORED 样例说明   第一次点击的位置同时属于第 1 和第 2 个窗口,但是由于第 2 个窗口在上面,它被选择并且被置于顶层。   第二次点击的位置只属于第 1 个窗口,因此该次点击选择了此窗口并将其置于顶层。现在的三个窗口的层次关系与初始状态恰好相反了。   第三次点击的位置同时属于三个窗口的范围,但是由于现在第 1 个窗口处于顶层,它被选择。   最后点击的 (0, 5) 不属于任何窗口。
geekfly
2022/05/06
8780
CCF考试——201409-2画图
  在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色。   下图给出了一个画了两个矩形的例子。第一个矩形是(1,1) 到(4, 4),用绿色和紫色表示。第二个矩形是(2, 3)到(6, 5),用蓝色和紫色表示。图中,一共有15个单位的面积被涂上颜色,其中紫色部分被涂了两次,但在计算面积时只计算一次。在实际的涂色过程中,所有的矩形都涂成统一的颜色,图中显示不同颜色仅为说明方便。
AI那点小事
2020/04/20
3380
网易游戏技术岗在线编程题(一)
题目来源:牛客网-网易2016年研发工程师编程题。 1.小易的升级之路 小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依次遇见n个怪
恋喵大鲤鱼
2018/08/03
4720
python人工智能【隔空手势控制鼠标】“解放双手“
随着美国openAI公司的CahtGPT诞生,人工智能开启了再度觉醒状态。在这样的一个时代的大背景下,演变出了“智能+万物”的潜在主题。全球智能化,已经成为了一个必然的趋势。人工智能时时代发展不可取代的产物。作为一名大学生,我甘愿为时代的发展贡献犬马之劳!!!
淼学派对
2023/10/14
7810
python人工智能【隔空手势控制鼠标】“解放双手“
杭电OJ2080-2089
这次 xhd 面临的问题是这样的:在一个平面内有两个点,求两个点分别和原点的连线的夹角的大小。 注:夹角的范围[0,180],两个点不会在圆心出现。
EmoryHuang
2022/09/26
3220
杭电OJ2080-2089
前缀和算法练习集
前六个测试点满足 1≤n≤10。 所有测试点满足 1≤n≤10^5,0−10000≤a_i≤1000。
timerring
2023/03/27
3900
前缀和算法练习集
【算法】前缀和与差分
前缀和可以快速求出原数组里面一段数的和。比如求一段区间[l,r],如果按照原来的做法,需要循环一遍,O(n),有前缀和的算法:
平凡的人1
2023/10/15
3160
【算法】前缀和与差分
程序员进阶之算法练习(八)附两道搜狐笔试题
前言 前面讲了那么多算法的重要性。口说无凭,这次带上两道搜狐今年的笔试题。 这里先附上两道搜狐题目的大意: 题目一: 《宝石》 有一串宝石首尾相连,用一个大写字母表示一个宝石; 现在需要从这一串宝石中截取一段宝石,要求这一段宝石包含ABCDE这5种字母;求剩下最多有多少个宝石? 题目二: 《袋鼠》 有n个弹簧排成一列,袋鼠起始位置在第一个弹簧; 输入n个数字,代表n个弹簧的力量; 弹簧的力量为5表示可以往后跳最多5个弹簧; 问袋鼠到达第n个弹簧的最小弹跳次数? 答案看最后的附加题部
落影
2018/04/27
1.1K0
程序员进阶之算法练习(八)附两道搜狐笔试题
一篇带你速通差分算法(C/C++)
差分算法是一种在计算机科学中常用的算法,特别是在处理序列数据时,它可以帮助我们快速计算出序列中相邻元素的差值。时间复杂度可以达到O(1),在C++中实现差分算法不仅可以提高程序的效率,还可以简化代码的复杂度。本文将详细介绍差分算法的原理、C++实现方法以及算法例题。
摆烂小白敲代码
2024/09/23
3440
一篇带你速通差分算法(C/C++)
杭电OJ2000-2009
输入数据有多组,每组占一行,由 4 个实数组成,分别表示 x1,y1,x2,y2, 数据之间用空格隔开。
EmoryHuang
2022/09/23
3960
【C++】前缀和算法专题
⽤ dp[i] 表⽰: [1, i] 区间内所有元素的和,那么 dp[i - 1] ⾥⾯存的就是 [1,i - 1] 区间内所有元素的和,那么:可得递推公式: dp[i] = dp[i - 1] +arr[i] ;
啊QQQQQ
2024/11/19
1030
【C++】前缀和算法专题
【算法专题】前缀和
题目:给定一个长度为n的数组 a1​, a2​, …an. 接下来有q次查询, 每次查询有两个参数l, r. 对于每个询问, 请输出 al + al + 1 + … + ar
YoungMLet
2024/03/01
1600
【算法专题】前缀和
第十一届蓝桥杯大赛软件类决赛 C++ B组 题解
本文原创首发CSDN,本文链接https://blog.csdn.net/qq_41464123/article/details/109695384 ,作者博客https://zwz99.blog.csdn.net/ ,转载请带上本链接,谢谢配合。
Designer 小郑
2023/08/01
4000
第十一届蓝桥杯大赛软件类决赛 C++ B组 题解
小码匠的信息学江湖:【模板】二维树状数组 2:区间修改,单点查询
小码匠
2023/09/19
3510
小码匠的信息学江湖:【模板】二维树状数组 2:区间修改,单点查询
计算机学院2022级新生周赛(一)题解
欢迎大家参加河南工程学院2022级第一次新生周赛,LYS代表计算机ACM协会在此祝愿大家的大学生涯一帆风顺,自信满满;友情爱情,两全其美;三阳开泰,学业大展;魅力四射,朋友万千;五福临门,幸福美满;六六大顺,学识博渊;七步之才,知识无边;八仙过海,才华呈现;九霄云外,烦恼抛开;十全十美,大学前途熠熠生辉!!!
浪漫主义狗
2022/10/28
5710
计算机学院2022级新生周赛(一)题解
1. 基础算法初识
逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对;否则不是。
浪漫主义狗
2022/07/11
3880
1. 基础算法初识
相关推荐
题目练习之综合运用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档