题目:

分析

通俗点说,我们需要解决的问题,就是计算小地图(藏宝图)能正好对上大地图(绿化图)的次数,需要保证两个条件:1)小地图必须包含在大地图中,2)0和1必须完全对应
70分解法:暴力搜索大地图,这个就不细说。
100分解法:当我们看到L的范围后,就应该知道不能开这么大的数组,也不能用这个范围来循环,所以得想其它的方法,用nS来解决问题,所以这里我选择使用了map来存储大地图。主要思路如下:

  1. 使用map和pair来存储大地图中树的坐标,具体为map<pair<int,int>,int>,其中pair表示横纵坐标
    long long x[n],y[n];map<pair<int,int>,int> mp;for(int i=0;i<n;i++){cin>>x[i]>>y[i];//将该坐标状态记为1,表示有树mp[make_pair(x[i],y[i])]=1;}
  1. 以大地图中每棵树的坐标为起点,遍历小地图。对于大地图来说起始坐标为(a,b),对小地图来说起始坐标为(0,0),那么遍历过程中大地图的坐标都可以用(a,b)和小地图的坐标来表示,即:B[i][j] = map[make_pair(a+i,b+j)]
  2. 最后计算大地图和小地图中0和1都能对应上的次数,即可判断该起始坐标是否符合题意
 int cnt=(s+1)*(s+1);//小地图的总点数int res=0;for(int i=0;i<n;i++){long long a=x[i],b=y[i];int temp=0;//小地图不能超出大地图的范围if(a+s<=l&&b+s<=l){for(int j=0;j<=s;j++){for(int k=0;k<=s;k++){//记录小地图能和大地图对应的点数if(B[j][k]==mp[make_pair(a+j,b+k)]){temp++;}}}}//比较对应点数和小地图总点数,若相等,则表示小地图和大地图对应if(temp==cnt){res++;}}

代码:

#include<iostream>
#include<map>
#include<algorithm>
using namespace std;int main(){long long n,l,s;cin>>n>>l>>s;long long x[n],y[n];map<pair<int,int>,int> mp;for(int i=0;i<n;i++){cin>>x[i]>>y[i];//将该坐标状态记为1,表示有树mp[make_pair(x[i],y[i])]=1;}int B[s+1][s+1];//注意逆序输入for(int i=s;i>=0;i--){for(int j=0;j<=s;j++){cin>>B[i][j];}}int cnt=(s+1)*(s+1);int res=0;for(int i=0;i<n;i++){long long a=x[i],b=y[i];int temp=0;//小地图不能超出大地图的范围if(a+s<=l&&b+s<=l){for(int j=0;j<=s;j++){for(int k=0;k<=s;k++){//记录小地图能和大地图对应的点数if(B[j][k]==mp[make_pair(a+j,b+k)]){temp++;}}}}//比较对应点数和小地图总点数,若相等,则表示小地图和大地图对应if(temp==cnt){res++;}}cout<<res;return 0;
}

总结:

这个解题思路由热心同学提供,感觉还是很清晰的。
不会STL的话限制就太多了.
菜鸡感悟:STL很有用,得学。

CCF CSP认证202206-02 寻宝!大冒险!C++题解相关推荐

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

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

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

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

  3. 参加CCF CSP认证者须知

    发布单位:中国计算机学会      发布时间:2014-11-11 15:06    凡有意参加CCF CSP认证者,请在cspro.org网站上注册.报名.缴费.打印准考证,参加认证后可以在网站查询 ...

  4. 计算机考csp200分啥水平,计算机与信息工程学院成功举办第20次CCF CSP认证考试

    2020年9月13日,计算机与信息工程学院在计算机大楼201举办第二十次CCF CSP认证考试.这是计算机与信息工程学院2019年12月与中国计算机学会签署协议.河南大学正式成为CSP认证考点以来,举 ...

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

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

  6. CCF —— CSP认证

    1.认证知识要求: 考试内容主要覆盖大学计算机专业所学习的程序设计.数据结构以及算法,以及相关的数学基础知识.包括但不限于: (1)程序设计基础 逻辑与数学运算,分支循环,过程调用(递归),字符串操作 ...

  7. python认证考试_Python入门习题(39)——CCF CSP认证考试真题:公共钥匙盒

    CCF CSP认证考试真题:共钥匙盒 问题描述 试题编号:201709-2 试题名称:公共钥匙盒 时间限制:1.0s 内存限制:256.0MB 问题描述 有一个学校的老师共用N个教室,按照规定,所有的 ...

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

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

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

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

  10. 第十四次CCF CSP认证心得

    个人博客链接:https://www.lhbat.com 在这里强烈的鄙视了一下自己~~~~简直有些坐井观天,写的啥也不是,但想一想,或许还是能给刚入门的同学(像我一样的小小白)或还没有参加过CSP认 ...

最新文章

  1. 一个总裁做企业的十条心得
  2. java 学到什么实习_我如何获得外展实习机会以及到目前为止所学到的知识
  3. python数据分析书单排行_数据分析有哪些好书值得推荐?
  4. OpenWrt编程篇
  5. 线程打印_面试题:用程序实现两个线程交替打印 0~100 的奇偶数
  6. java中的provide,vue3 provide ref
  7. ios 内联函数 inline ---分解LFLiveKit
  8. 内存管理2(主讲MRR)
  9. filezilla 共享多个目录_Linux下搭建NFS文件共享服务器
  10. win10 卸载mysql5.7
  11. proteus仿真常见报错信息
  12. 在抖音找罗永浩干掉辣条
  13. u盘启动计算机看不到硬盘,U盘启动找不到硬盘的解决方案
  14. 数据挖掘 任务一:预测贷款是否逾期
  15. 同一个图表创建双坐标轴,显示多个图例
  16. UE4制作星际天空球
  17. 软件测试团队口号及队名,霸气响亮的队名和口号押韵 有创意的团队口号
  18. ios开发之MPNowPlayingInfoCenter 锁屏显示正在播放的音乐
  19. Python 学到什么程度才可以去找工作?掌握这 4 点足够了!
  20. 三国志10在win7下的安装

热门文章

  1. 输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数
  2. 《最强蜗牛》体验总结:放置的魅力、沙雕文化的胜利
  3. 【热门主题:暗黑破坏神三xp主题】
  4. 【一起来刷题】基础排序问题之快速排序算法
  5. pta7-2 快速排序 (10 分)
  6. 三维可视化软件开发——点云的打开与八叉树管理
  7. RT-Thread 的 CPU 固件移植理解
  8. 苏州网站优化小技巧分享-关键词@运营猫工具箱
  9. ios中级面试题(二)
  10. Java FFmpeg的音视频处理