解题思路

这题如果用二维矩阵肯定会超标,因为样例保证n<=109n <= 10^9n<=109,所以考虑用点集来处理。

  1. 读入所有的树的位置,每个位置用一个pair来记录
  2. 记录每个可能的左下角——其实也就是树的位置——对应的藏宝图范围覆盖了多少棵树
  3. 读入藏宝图中树的位置和个数
  4. 对于每颗绿化图中的树,检查树的个数与藏宝图是否一致,检查树的位置与藏宝图是否一致,二者均符合则答案加一
  5. 输出答案

满分代码实现

#include <iostream>
#include <set>
#include <algorithm>
#include <cmath>
#include <map>
using namespace std;int main() {set<pair<int, int> > forests;set<pair<int, int> > treasures;map<pair<int, int>, int> counts;int n = 0;int forest, treasure;cin >> n >> forest >> treasure;int x = 0, y = 0;for (int i = 0; i < n; i++) {cin >> x >> y;forests.insert(make_pair(x, y));}for (set<pair<int, int> >::iterator it = forests.begin(); it != forests.end(); it++) {x = it->first, y = it->second;for (int i = x; i >= max(x - treasure, 0); i--) {for (int j = y; j >= max(y - treasure, 0); j--) {if (!forests.count(make_pair(i, j))) continue;if (!counts.count(make_pair(i, j))) {counts[make_pair(i, j)] = 1;}else counts[make_pair(i, j)]++;}}}int isTree = 0;int trees = 0;for (int i = treasure; i >= 0; i--) {for (int j = 0; j <= treasure; j++) {cin >> isTree;if (!isTree) continue;treasures.insert(make_pair(i, j));trees++;}}int ans = 0;bool flag = true;for (set<pair<int, int> >::iterator it = forests.begin(); it != forests.end(); it++) {flag = true;x = it->first, y = it->second;if (counts[make_pair(x, y)] != trees) continue;if (x + treasure > forest || y + treasure > forest) continue;for (set<pair<int, int> >::iterator t = treasures.begin(); t != treasures.end(); t++) {if (!forests.count(make_pair(x + t->first, y + t->second))) {flag = false;break;}}if (flag) {// cout << x << " " << y << endl;ans++;}}cout << ans;return 0;
}

使用C++的CCF-CSP满分解决方案 202206-2 寻宝!大冒险!点集相关推荐

  1. CSP 202206 题解:归一化处理,寻宝大冒险,角色授权,光线追踪,PS无限版

    试题内容请前往CCF官网查看: CCF-CSP计算机软件能力认证考试 http://118.190.20.162/home.page 阅读本题解前,您应当了解下列知识: 线段树 教程 C++ 标准库( ...

  2. 2022-6-2寻宝大冒险(不用前缀和与map,c/c++实测满分)

    总结: 离散点对应回稀疏矩阵时可以分块处理,根据限制条件筛选掉不必处理的块,缩短计算时间. 一.题目要求 题目背景 暑假要到了.可惜由于种种原因,小 P 原本的出游计划取消.失望的小 P 只能留在西西 ...

  3. CCF CSP认证考试在线评测系统

    关于CCF CSP认证考试在线评测系统 CCF CSP认证考试简介 CCF是中国计算机学会的简称.CCF计算机软件能力认证(简称CCF CSP认证考试)是CCF于2014年推出,是CCF计算机职业资格 ...

  4. 计算机能力挑战赛_蓝桥杯、PAT、CCF CSP、团体程序设计天梯赛、传智杯、计算机能力挑战赛、软考等大学生编程比赛/考试介绍...

    介绍7个适合普通大学生参加的编程比赛/考试(注:有的比赛如蓝桥杯有多种赛别,本文仅介绍其中的程序设计/编程比赛). 编程入门书籍推荐<算法笔记>,内容详细易懂,对新手非常友好,描述语言为C ...

  5. CCF CSP认证菜鸟刷题日志

    CCF CSP菜鸟刷题日志(c/c++) 本萌新写给自己看的,要是有大佬路过,请多多指教orz 立个flag:每日一更,至201903 9月15ccf csp,冲鸭! 今天(2019.8.18)起每天 ...

  6. 北航ccf计算机软件能证排名前18%,CCF成功举办第十一次CCF CSP认证

    第十一次CCF CSP计算机软件能力认证(CSP)于2017年9月17日在全国66所院校举办,这是2017年度CCF举办的第二次认证,来自全国200多个单位的6591人参加了本次认证.通过对本次CSP ...

  7. ccf csp认证考试的历年题集汇总

    1.CCF历年试题解答_按题序 2.CCF认证考试题解目录 3.CCF CSP入坑指南 4.ccf 认证历年试题解答 5.CCF认证历年真题 _无题意 6.CCF-CSP认证备考要点 6.CCF认证历 ...

  8. CCF CSP 201812-2 小明放学 解题思路及经验总结

    更新:多谢weixin_44714465同学指出我的错误[详见49-52行代码,已改正!].CCF CSP的OJ居然没有把这个错误检测出来,不过为了追求严谨,我们还是应该及时改正! 题目描述 试题编号 ...

  9. CCF CSP 201609-2 火车购票

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

  10. 以CCF CSP认证为抓手,积极探索软件基础能力递进式培养体系

    原文链接:以CCF CSP认证为抓手,积极探索软件基础能力递进式培养体系 发布单位:学会      发布时间:2017-01-20 16:16 作者:陆建峰    余立功 摘要:为提升计算机专业类学生 ...

最新文章

  1. VS2010创建ATL类时需要手动填写ProgID
  2. 一道经典面试题讲解 :数组越界而没报错 ,却出现死循环 ?(C语言)
  3. 超全大厂Java面试彩蛋
  4. Waymo无人卡车高调重返凤凰城,但货运先机已失
  5. 温故知新 javascript 正则表达式
  6. es6学习 -- 解构赋值
  7. 第五届[2013年]全国大学生数学竞赛[数学类]试题六参考解答
  8. BZOJ3133[Baltic2013]ballmachine
  9. 面试常考的数据结构Java实现
  10. 关于SQL2012里,出现“表中的数据受保护,不能修改”的情况的解决办法
  11. security工作笔记004---.NET Web安全性-身份验证和授权(一)之Principal
  12. 【机房收费系统】--SSTab控件与MSHFlexGrid控件
  13. Android项目实战(三十一):异步下载apk文件并安装(非静默安装)
  14. 解释HTTP中Get和Post。它们有什么区别,哪个使用时更加安全?
  15. jhipster初接触
  16. Adobe Illustrator for Mac 2020 24.0.1版 — 矢量绘图工具
  17. 宽带波束形成 matlab,关于均匀圆阵MVDR宽带波束形成的程序
  18. Matlab实现指纹去噪增强
  19. 网页在线视频下载教程(m3u8格式介绍及下载教程)
  20. PMP——项目管理介绍

热门文章

  1. fork 循环创建多个子进程
  2. Python全栈(十)Django框架之10.ORM模型对象和QuerySet方法
  3. es6 javascript的字符串对象新增团员方法
  4. vid 和pvid的区别
  5. mysql 日期查询下周,MySQL时间函数的使用:查询本周、下周、本月、下个月份的数据【转】...
  6. 乐鑫M5GO自制睡眠小助手!新手。。。轻打脸
  7. python刷题一亩三分地_一亩三分地
  8. 【点云处理之论文狂读前沿版6】Surface Representation for Point Clouds
  9. 迷宫问题 深度优先搜索 广度优先搜索 宽度优先搜索【python】
  10. js添加多marker 高德地图_高德地图点聚合--Marker多点聚合及多个marker点击事件