CCF CSP认证202206-02 寻宝!大冒险!C++题解
题目:
分析
通俗点说,我们需要解决的问题,就是计算小地图(藏宝图)能正好对上大地图(绿化图)的次数,需要保证两个条件:1)小地图必须包含在大地图中,2)0和1必须完全对应
70分解法:暴力搜索大地图,这个就不细说。
100分解法:当我们看到L的范围后,就应该知道不能开这么大的数组,也不能用这个范围来循环,所以得想其它的方法,用n和S来解决问题,所以这里我选择使用了map来存储大地图。主要思路如下:
- 使用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;}
- 以大地图中每棵树的坐标为起点,遍历小地图。对于大地图来说起始坐标为(a,b),对小地图来说起始坐标为(0,0),那么遍历过程中大地图的坐标都可以用(a,b)和小地图的坐标来表示,即:B[i][j] = map[make_pair(a+i,b+j)]
- 最后计算大地图和小地图中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++题解相关推荐
- 以CCF CSP认证为抓手,积极探索软件基础能力递进式培养体系
原文链接:以CCF CSP认证为抓手,积极探索软件基础能力递进式培养体系 发布单位:学会 发布时间:2017-01-20 16:16 作者:陆建峰 余立功 摘要:为提升计算机专业类学生 ...
- CCF CSP认证考试在线评测系统
关于CCF CSP认证考试在线评测系统 CCF CSP认证考试简介 CCF是中国计算机学会的简称.CCF计算机软件能力认证(简称CCF CSP认证考试)是CCF于2014年推出,是CCF计算机职业资格 ...
- 参加CCF CSP认证者须知
发布单位:中国计算机学会 发布时间:2014-11-11 15:06 凡有意参加CCF CSP认证者,请在cspro.org网站上注册.报名.缴费.打印准考证,参加认证后可以在网站查询 ...
- 计算机考csp200分啥水平,计算机与信息工程学院成功举办第20次CCF CSP认证考试
2020年9月13日,计算机与信息工程学院在计算机大楼201举办第二十次CCF CSP认证考试.这是计算机与信息工程学院2019年12月与中国计算机学会签署协议.河南大学正式成为CSP认证考点以来,举 ...
- 北航ccf计算机软件能证排名前18%,CCF成功举办第十一次CCF CSP认证
第十一次CCF CSP计算机软件能力认证(CSP)于2017年9月17日在全国66所院校举办,这是2017年度CCF举办的第二次认证,来自全国200多个单位的6591人参加了本次认证.通过对本次CSP ...
- CCF —— CSP认证
1.认证知识要求: 考试内容主要覆盖大学计算机专业所学习的程序设计.数据结构以及算法,以及相关的数学基础知识.包括但不限于: (1)程序设计基础 逻辑与数学运算,分支循环,过程调用(递归),字符串操作 ...
- python认证考试_Python入门习题(39)——CCF CSP认证考试真题:公共钥匙盒
CCF CSP认证考试真题:共钥匙盒 问题描述 试题编号:201709-2 试题名称:公共钥匙盒 时间限制:1.0s 内存限制:256.0MB 问题描述 有一个学校的老师共用N个教室,按照规定,所有的 ...
- CSP 202206 题解:归一化处理,寻宝大冒险,角色授权,光线追踪,PS无限版
试题内容请前往CCF官网查看: CCF-CSP计算机软件能力认证考试 http://118.190.20.162/home.page 阅读本题解前,您应当了解下列知识: 线段树 教程 C++ 标准库( ...
- CCF CSP认证菜鸟刷题日志
CCF CSP菜鸟刷题日志(c/c++) 本萌新写给自己看的,要是有大佬路过,请多多指教orz 立个flag:每日一更,至201903 9月15ccf csp,冲鸭! 今天(2019.8.18)起每天 ...
- 第十四次CCF CSP认证心得
个人博客链接:https://www.lhbat.com 在这里强烈的鄙视了一下自己~~~~简直有些坐井观天,写的啥也不是,但想一想,或许还是能给刚入门的同学(像我一样的小小白)或还没有参加过CSP认 ...
最新文章
- 一个总裁做企业的十条心得
- java 学到什么实习_我如何获得外展实习机会以及到目前为止所学到的知识
- python数据分析书单排行_数据分析有哪些好书值得推荐?
- OpenWrt编程篇
- 线程打印_面试题:用程序实现两个线程交替打印 0~100 的奇偶数
- java中的provide,vue3 provide ref
- ios 内联函数 inline ---分解LFLiveKit
- 内存管理2(主讲MRR)
- filezilla 共享多个目录_Linux下搭建NFS文件共享服务器
- win10 卸载mysql5.7
- proteus仿真常见报错信息
- 在抖音找罗永浩干掉辣条
- u盘启动计算机看不到硬盘,U盘启动找不到硬盘的解决方案
- 数据挖掘 任务一:预测贷款是否逾期
- 同一个图表创建双坐标轴,显示多个图例
- UE4制作星际天空球
- 软件测试团队口号及队名,霸气响亮的队名和口号押韵 有创意的团队口号
- ios开发之MPNowPlayingInfoCenter 锁屏显示正在播放的音乐
- Python 学到什么程度才可以去找工作?掌握这 4 点足够了!
- 三国志10在win7下的安装