Day 1

201403-1

题目描述

有 \(N\) 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(\(a\) 和 \(-a\) 为一对相反数)。

输入格式

第一行包含一个正整数 \(N\)。\((1 ≤ N ≤ 500)\)。

第二行为 \(N\) 个用单个空格隔开的非零整数,每个数的绝对值不超过\(1000\),保证这些整数各不相同。

  

输出格式

  只输出一个整数,即这 \(N\) 个数中包含多少对相反数。

样例输入

5
1 2 3 -1 -2

样例输出

2

题目分析

语法题

保证输入整数互不相同,所以直接看输入的数的相反数是否存在即可(哈希表,标记都可)

C++代码

#include <bits/stdc++.h>

using namespace std;

map<int , int> p;

int main()
{
int n;
cin >> n;
int cnt = 0;
while (n -- )
{
int x;
cin >> x;
if(p[abs(x)]) cnt ++;
else p[abs(x)] ++;
}
cout << cnt << '\n';
return 0;
}

201403-2

题目描述

在某图形操作系统中,有 \(N\) 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域。

窗口的边界上的点也属于该窗口。

窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。

当你点击屏幕上一个点的时候,你就选择了处于被点击位置的最顶层窗口,并且这个窗口就会被移到所有窗口的最顶层,而剩余的窗口的层次顺序不变。

如果你点击的位置不属于任何窗口,则系统会忽略你这次点击。

现在我们希望你写一个程序模拟点击窗口的过程。

输入格式

输入的第一行有两个正整数,即 \(N\) 和 \(M\)。

接下来 \(N\) 行按照从最下层到最顶层的顺序给出 \(N\) 个窗口的位置。

每行包含四个非负整数 \(x_1,y_1,x_2,y_2\),表示该窗口的一对顶点坐标分别为 \((x_1,y_1)\) 和\((x_2,y_2)\)。保证 \(x_1<x_2,y_1<y_2\)。

接下来 \(M\) 行每行包含两个非负整数 \(x,y\),表示一次鼠标点击的坐标。

题目中涉及到的所有点和矩形的顶点的 \(x,y\) 坐标分别不超过 \(2559\) 和 \(1439\)。

输出格式

输出包括 \(M\) 行,每一行表示一次鼠标点击的结果。

如果该次鼠标点击选择了一个窗口,则输出这个窗口的编号(窗口按照输入中的顺序从 \(1\)

编号到 \(N\)。

如果没有,则输出 IGNORED

数据范围

\(1≤N,M≤10\)

输入样例:

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)\)

不属于任何窗口。

题目分析

大模拟题,因为数据量很小模拟就行

C++ 代码

#include <bits/stdc++.h>
#define x first
#define y second using namespace std; typedef pair<int, int> PII;
const int N = 11; pair<PII , PII> point[N];
map<pair<PII , PII> , int> mp; int n , m; int main()
{
cin >> n >> m;
for(int i = 0 ; i < n ; i ++)
{
cin >> point[i].first.x >> point[i].first.y >> point[i].second.x >> point[i].second.y;
mp[point[i]] = i + 1;
} while(m --)
{
int px , py;
cin >> px >> py;
int ans = 0 , idx = -1;
pair<PII , PII> t;
for(int i = 0 ; i < n ; i ++)
if(px >= point[i].first.x && px <= point[i].second.x && py >= point[i].first.y && py <= point[i].second.y)
ans = mp[point[i]] , t = point[i] , idx = i;
if(ans == 0) cout << "IGNORED" << '\n';
else
{
cout << ans << '\n';
for(int i = 0 ; i < n ; i ++)
if(i > idx) point[i - 1] = point[i];
point[n - 1] = t;
}
} }

Day1 备战CCF-CSP练习的更多相关文章

  1. CCF CSP 认证

    参加第八次CCF CSP认证记录 代码还不知道对不对,过两天出成绩. 成绩出来了,310分. 100+100+100+10+0: 考试13:27开始,17:30结束,提交第4题后不再答题,只是检查前四 ...

  2. CCF CSP 201609-2 火车购票

    题目链接:http://118.190.20.162/view.page?gpid=T46 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排 ...

  3. CCF CSP 201703-3 Markdown

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201703-3 Markdown 问题描述 Markdown 是一种很流行的轻量级标记语言(l ...

  4. CCF CSP 201703

    CCF CSP 2017·03 做了一段时间的CCF CSP试题,个人感觉是这样分布的 A.B题基本纯暴力可满分 B题留心数据范围 C题是个大模拟,留心即可 D题更倾向于图论?(个人做到的D题基本都是 ...

  5. CCF CSP 201312-3 最大的矩形

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201312-3 最大的矩形 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i( ...

  6. CCF CSP 201609-3 炉石传说

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201609-3 炉石传说 问题描述 <炉石传说:魔兽英雄传>(Hearthston ...

  7. CCF CSP 201403-3 命令行选项

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201403-3 命令行选项 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些 ...

  8. CCF CSP 201709-4 通信网络

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201709-4 通信网络 问题描述 某国的军队由N个部门组成,为了提高安全性,部门之间建立了M ...

  9. CCF CSP 201409-3 字符串匹配

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201409-3 字符串匹配 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那 ...

  10. CCF CSP 201503-3 节日

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201503-3 节日 问题描述 有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形 ...

随机推荐

  1. 11.23DP进阶总结

    例.1 Luogu-P1387最大正方形 按如下复杂度来分析 O(\(n^6\)) O(\(n^5\)) O(\(n^3\)) O(\(n^2\log n\)) O(n^2) O(\(n^6\)) 最 ...

  2. CF1573B题解

    题意: 对于给定的序列 aA1,aA2,-,aAna_{A1},a_{A2},-,a_{An}aA1​,aA2​,-,aAn​.bB1,bB2,-,bBnb_{B1},b_{B2},-,b_{Bn}b ...

  3. Linux设置每晚定时备份Oracle数据表

    先新建目录 该路径:/home/oracle/backup 该名称:DATA_PATH shell脚本 export ORACLE_BASE=/home/oracle/app export ORACL ...

  4. EFCore——树形结构篇

    1.整体数据量不大的场景 参照:EntityFramework Linq 查询数据获得树形结构-YES开发框架网 (yesdotnet.com) 核心方法GetChildData,特点将所有的数据查到 ...

  5. MaxKB中如何选择向量模型?

    MaxKB内置的向量模型不足? 在MaxKB中知识文档Emdeding是很重要的一环,而这个过程就必须依赖向量模型.目前MaxKB内置的向量模型为text2vec-base-Chinese,一个针对中 ...

  6. Java编程--设计模式之装饰者模式

    目录 装饰者模式 简介 做馒头实例 生产汽车实例 常见使用 装饰者模式 简介 装饰者模式的主要功能就是对一个类的功能进行扩充! 对于需要对某个类扩充,但是该类是final类,不能被继承,这是时候可以用 ...

  7. 【经验】CiteSpace|Wiley Online Library或除知网以外的其他网站的文献怎么导入CiteSpace 6.1.6?

      如果没安装,请看这篇博客安装,现在新版(6.1.6)的不需要额外下载java了,就很妙~:   最新版citespace软件的安装与配置   结论:导出成RIS然后用它自带的转换成WoS. 文章目 ...

  8. golang 接口按需获取资源

    场景 爬虫业务场景,我们需要调用三方接口获取代理ip地址,每个ip地址可以使用的时间有限和价格的,本着不浪费资源,我们在这里做一层封装. 当有其他业务调用我们接口的时候,会拉起定时任务,这个定时任务的 ...

  9. 高性能深度学习推理引擎 -- OpenPPL

    OpenPPL OpenPPL是商汤基于自研高性能算字库的开源深度学习推理平台,能够让人工智能应用高效可靠地运行在现有的CPU/GPU等计算平台上,为云端场景提供人工智能推理服务 OpenPPL基于全 ...

  10. 定制Django的Tag和Filter(一)

    1.在 app 目录下创建 templatetags 目录(目录名只能是 templatetags). 如: app/ __init__.py models.py templatetags/ __in ...