题目:

分析

通俗点说,我们需要解决的问题,就是计算小地图(藏宝图)能正好对上大地图(绿化图)的次数,需要保证两个条件: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. python学习之老男孩python全栈第九期_day004知识点总结
  2. redisson集成spring-session和shiro实现分布式session
  3. icmp基于tcp还是udp_面试爱考、编程必会基础!TCP/IP必知必会10大问题……
  4. NOI2019省选模拟赛 第五场
  5. 应对深度学习人才缺口,百度黄埔学院发起深度学习架构师培养计划...
  6. es6 实例:使用Proxy实现观察者模式
  7. 在没有导师的指导下,研究生如何阅读文献、提出创见、写出论文?
  8. 西门子1200跟V90伺服总线通讯①_设置V90
  9. 现代操作系统的基本特性(2)
  10. Visual Studio开源库集成器Vcpkg全教程--利用Vcpkg轻松集成开源第三方库
  11. 中国移动MM的免流量费策略太不靠谱
  12. WebView 截取长图
  13. 6.4 利用色彩范围命令快速选择一定色彩范围内的像素 [原创Ps教程]
  14. 计算机网络——Cisco Packet Tracer 实验
  15. SAP FICO 第一节 后台配置
  16. Linux下编写C语言
  17. 【AVS系列】AVS2参考软件RD17.0
  18. 【Leetcode】1335. Minimum Difficulty of a Job Schedule
  19. 第 46 届 ICPC 国际大学生程序设计竞赛亚洲区域赛(上海)DEGHI
  20. 微信直接语音变女声教程

热门文章

  1. 基于Matlab的斜率积分法求离面位移
  2. 4.java并发编程之不可变
  3. HDLBits刷题_Verilog Language_Vector4
  4. 快手6.8版本sig3算法破解
  5. Linux整除之数字求和法,数字整除特征
  6. 软件架构的 8 大图表工具: 绘制软件架构图的最佳免费工具
  7. 设置IE浏览器新打开的页面在当前页的新选项卡中打开
  8. 工程师职级胜任力框架
  9. 什么是ifttt,ifttt怎么玩?
  10. 锻造1-300快速冲技能指南