Day1 备战CCF-CSP练习
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练习的更多相关文章
- CCF CSP 认证
参加第八次CCF CSP认证记录 代码还不知道对不对,过两天出成绩. 成绩出来了,310分. 100+100+100+10+0: 考试13:27开始,17:30结束,提交第4题后不再答题,只是检查前四 ...
- CCF CSP 201609-2 火车购票
题目链接:http://118.190.20.162/view.page?gpid=T46 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排 ...
- CCF CSP 201703-3 Markdown
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201703-3 Markdown 问题描述 Markdown 是一种很流行的轻量级标记语言(l ...
- CCF CSP 201703
CCF CSP 2017·03 做了一段时间的CCF CSP试题,个人感觉是这样分布的 A.B题基本纯暴力可满分 B题留心数据范围 C题是个大模拟,留心即可 D题更倾向于图论?(个人做到的D题基本都是 ...
- CCF CSP 201312-3 最大的矩形
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201312-3 最大的矩形 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i( ...
- CCF CSP 201609-3 炉石传说
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201609-3 炉石传说 问题描述 <炉石传说:魔兽英雄传>(Hearthston ...
- CCF CSP 201403-3 命令行选项
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201403-3 命令行选项 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些 ...
- CCF CSP 201709-4 通信网络
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201709-4 通信网络 问题描述 某国的军队由N个部门组成,为了提高安全性,部门之间建立了M ...
- CCF CSP 201409-3 字符串匹配
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201409-3 字符串匹配 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那 ...
- CCF CSP 201503-3 节日
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201503-3 节日 问题描述 有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形 ...
随机推荐
- Linux内核中块层上的多队列
如果你想知道SSD为什么使用多队列,可以看看这篇文章:https://kernel.dk/blk-mq.pdf 1. 多块层 以下关于多队列层的总结来自 The Multi-Queue Interfa ...
- C# 拓展方法( 二)——模拟拓展方法的场景
namespace ExpandingMethodDemo{ class Program { static void Main(string[] args) { Phone ph = new Phon ...
- Navicat Premiun已经停止工作
与网易有道词典冲突.退出词典即可.
- 【代码】JS|前端密码,浪漫至死不渝,祝我生日快乐
今天是特别的日子,我想把这篇存稿发出来. 一次缺席,次次缺席,便不再期待重逢. 也是时候,解开最后一个设计过的谜题. 学加密的同时,我恰好写前端比较多,也有朋友找我测试他们前端页面上的加密方案的安全性 ...
- Dify 架构全景:从模块设计到部署实践的完整指南
项目概述 Dify 是一个开源的 LLM 应用开发平台,提供直观的界面,结合了AI Agent工作流.RAG 管道.智能体能力.模型管理和可观察性功能等,使用户能够快速从原型转向生产环境.Dify 允 ...
- useEffect的那些坑,你知道多少
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 14px; o ...
- IDEA开启热加载
然後 Ctrl+Shift+Ait+/ pom.xml里添加 <build> <plugins> <!-- 配置插件,让热部署依赖spring-boot-devtools ...
- VMware workstation 部署微软MDT系统
一.环境准备 1. VMware Workstation 虚拟机配置 新建虚拟机 类型:Microsoft Windows Server 2022 Standard 内存:4GB+ 硬盘:100GB( ...
- Windows配置VS Code详细流程
本文介绍Visual Studio Code(VS Code)软件在Windows操作系统电脑中的下载.安装.运行方法. Visual Studio Code(简称VS Code)是一款由微软 ...
- Spring 注解之 @MapperScan 和 @Mapper
@Mapper注解 为了让别的类能够引用UserMapper,需要在UserMapper类上添加@Mapper注解: @Mapper public interface UserMapper { pub ...