CCF- CSP 201912-2回收站选址 巧用STL实现O(n)时间复杂度 满分题解

题目链接:201912-2回收站选址

思路:

  • 坐标最大可达到109,采用long long 类型,n最大到1000,设置数据范围为1010
  • 采用pair来记录垃圾点的坐标,为了快速找到对应点的坐标,采用map对应的方式,设置key值为pair存储的坐标,value值为1,表示存在该点;
  • 设置value值为1有两个好处:1.可以在判断垃圾点时,直接判断;2.在计算得分时,直接找到对角位置
  • 最后计算各个得分点的数量时,采用sum%5的方法
  • 暴力算法参考CCF- CSP201912-2回收站选址 暴力解法满分题解

代码如下:

#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
const int N = 1e3+10;
typedef long long  LL;
typedef pair<LL, LL> PLL;
map<PLL, int> m;
PLL g[N];//存储垃圾点的坐标
int ans[N];//记录各得分的个数
int n;
int main()
{cin>>n;for(int i=1;i<=n;i++){int x,y;cin>>x>>y;g[i]={x,y};//记录坐标m[g[i]] = 1;//坐标作为key,value设置为1}for(int i=1;i<=n;i++){int sum = 0;//记录得分//判断是否满足选址条件if(m[{g[i].first,g[i].second+1}]&&m[{g[i].first,g[i].second-1}]&&m[{g[i].first+1,g[i].second}]&&m[{g[i].first-1,g[i].second}]){//计算得分sum+=m[{g[i].first+1,g[i].second+1}]+m[{g[i].first+1,g[i].second-1}]+m[{g[i].first-1,g[i].second+1}]+m[{g[i].first-1,g[i].second-1}];//对应得分点数量+1ans[sum%5]++;}}//输出答案for(int i=0;i<5;i++){cout<<ans[i]<<endl;}
}
//7
//1 2
//2 1
//0 0
//1 1
//1 0
//2 0
//0 1

CCF- CSP 201912-2回收站选址 巧用STL实现O(n)时间复杂度 满分题解相关推荐

  1. 第18次csp认证 201912-2 回收站选址(C++)

    题目 分析 每一个垃圾堆放处都可能是回收站,所以两轮循环,找出所有可以成为回收站的坐标. 再两轮循环,确定所有回收站的得分 最后输出每种得分的回收站个数 AC代码 #include <iostr ...

  2. CSP 201912-2 回收站选址 python实现+详解

    试题 代码 # 读入点的个数 n = int(input())# 创建字典,键为点的坐标,值为true,存放所有点 dict = {} for i in range(n):x, y = [int(m) ...

  3. #CSP 201912-2 回收站选址(C语言)(100分)

    题目 开学了,可是校园里堆积了不少垃圾杂物. 热心的同学们纷纷自发前来清理,为学校注入正能量~ 通过无人机航拍我们已经知晓了n处尚待清理的垃圾位置,其中第i(1<=i<=n)处的坐标为(x ...

  4. CCF CSP认证考试题解目录

    由于本人的书籍<算法详解(C++11 语言描述)>已经出版,为了降低题解的维护难度,有关CCF CSP考试的所有题解的更新将全部在书籍的配套仓库进行,CSDN博客中不再进行任何题解的更新. ...

  5. CCF CSP 历年题解(C/C++)【截至2019年】

    本人水平有限  目前只能做前两题  后面的随机可能会有  就脸厚的先写一个吧 (捂脸) 第一题 一般都是小模拟题  细心一点 注意一下格式之类的很容易就出来的 第二题 就是一道大模拟题 耐心一点 适当 ...

  6. leetcode力扣、PAT、CCF CSP历年真题C/C++满分答案 精心整理合集

    持续更新中~ 推荐算法类学习书籍:<算法笔记>胡凡.曾磊 著 尽心尽力肝出来的合集,如果有幸帮助到你的话,不要忘记给我点个赞哈哈哈~ CSP历年真题C/C++满分答案目录 没有备注的都是满 ...

  7. CCF CSP 201609-2 火车购票

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

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

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

  9. CCF201912-2 回收站选址

    试题编号: 201912-2 试题名称: 回收站选址 时间限制: 1.0s 内存限制: 512.0MB 问题描述:   解题思路: 因为坐标范围很大,但是点的数据不多,所以用二维数组来存储坐标这个图是 ...

最新文章

  1. Linux 2 的 Windows 子系统上发布 CUDA
  2. 换掉VMware?轻量级虚拟机,横空出世!
  3. VISP视觉库框架详细解释
  4. linux c 实现 http get post 请求
  5. [转载]今天安装sql2000,老是出挂起的错误。所以找了找看见了这个方法。
  6. 13-day13-str
  7. pat 乙级 1003 我要通过!(C++)
  8. 利用Attribute扩展MVC的Title和Sitemap
  9. linux负载均衡技术的分类,LinuxLVS负载均衡群集
  10. php语法基础考试,我的php学习第二十六天——PHP基础语法
  11. 优化大数据分析的五个小技巧
  12. Go 爱好者福利,《Go 语言编程之旅》正式开源!
  13. PickerView的简单介绍
  14. c语言贪吃蛇程序设计报告蚂蚁文库,贪吃蛇游戏C程序设计报告
  15. 算法(2)计算出101-200之间的素数
  16. OpenGL ES着色器语言----------------储存修饰符
  17. Swift - 实现公历、农历日期之间的相互转换
  18. 【Python游戏】Python实现一个雷霆战机游戏 | 附带源码
  19. 气传导蓝牙耳机优缺点有哪些?气传导耳机科普及推荐
  20. 35、StylizedNeRF Consistent 3D Scene Stylization as Stylized NeRF via 2D-3D Mutual Learning

热门文章

  1. Geography V.S. Geometry
  2. 计算机中丢失fmodex64.dll,打开london 2012显示“没法启动此程序,因为计算机中丢失fmodex.dll。尝试重新安装该程序以解决此问题。”...
  3. 实时数仓在滴滴的实践和落地
  4. ZOJ-1091-Knight Moves
  5. 关于QQ密码暴力破解的一些想法(仅提供一个想法)
  6. 十五天学会Autodesk Inventor,看完这一系列就够了(十),凸雕、贴图
  7. java程序员必看书籍
  8. 如何利用计算机做图像,什么是图像识别?图像识别是如何实现的?
  9. vue+iView实现导入与导出excel功能
  10. 2012年下半年软件评测师上午试题