CCF- CSP 202206-2寻宝!大冒险!暴力算法满分题解

题目链接:202206-2寻宝!大冒险!

思路:

  • 数据范围中n ≤ \leq ≤ 1000,S ≤ \leq ≤ 50,考虑时间复杂度,可以遍历藏宝图坐标:时间复杂度为O(S2)
  • pair存储绿化图中非零坐标,二维数组存储绿化图坐标
  • 遍历pair,分别以pair中的点作为藏宝图左下角的点
  • 思考样例2,得到两种终结循环的判断条件
    • 边缘判断:当j+dx>l||k+dy>l时,不符合条件
    • 绿化图和藏宝图上1的数量必须对应,才能够进行接下来的操作
  • 分别记录藏宝图中满足条件的点1的个数和绿化图中满足条件的1的个数,当两者个数相等时进行判断
  • 对藏宝图上的点分0和1进行判断,具体参考注释

代码如下:

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e3+10;
typedef pair<int, int> PII;
int n,s,l;
int b[N][N];//存储藏宝图坐标
PII p[N];//存储绿化图坐标
int main()
{cin>>n>>l>>s;for(int i=0;i<n;i++){int x,y;cin>>x>>y;p[i]={x,y};}int num = 0;//记录藏宝图中1的个数for(int i=s;i>=0;i--){for(int j=0;j<=s;j++){cin>>b[i][j];if(b[i][j])num++;}}int sum = 0;//记录满足条件的方案for(int i=0;i<n;i++){bool flag = true;//记录是否满足题目要求auto t = p[i];int dx = t.first,dy = t.second;int temp=0;//记录符合要求的绿化图上1的数量for(int j = 0;j<n;j++){if(p[j].first-dx>=0&&p[j].first-dx<=s&&p[j].second-dy>=0&&p[j].second-dy<=s){temp++;}}//当num与temp相等时才进行接下来的操作if(num==temp){for(int j=s;j>=0;j--){for(int k=0;k<=s;k++){//超出边界范围if(j+dx>l||k+dy>l){flag = false;break;}//当前点为0if(b[j][k]==0){for(int r = 0;r<n;r++){//如果该点的坐标在绿化图上为1,则不满足条件if((p[r].first-dx==j&&p[r].second-dy==k)){flag = false;break;}}}//当前点为1else{for(int r = 0;r<n;r++){//该点的坐标可以在绿化图存在,满足条件if(p[r].first-dx==j&&p[r].second-dy==k){break;}//如果遍历绿化图上的所有点都不存在,则不满足条件if(r==n-1){flag = false;}}}}}if(flag)sum++;}}cout<<sum<<endl;return 0;
}

CCF- CSP 202206-2寻宝!大冒险!暴力算法满分题解相关推荐

  1. ccf寻宝!大冒险!python满分(敲开心~)

    寻宝 大冒险 题目传送:http://118.190.20.162/view.page?gpid=T147 思路及代码: 核心点就是哈希. 之前刷的是70分,找不到之前的代码了,大概是建了一个很大的表 ...

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

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

  3. CCF CSP认证202206-02 寻宝!大冒险!C++题解

    题目: 分析 通俗点说,我们需要解决的问题,就是计算小地图(藏宝图)能正好对上大地图(绿化图)的次数,需要保证两个条件:1)小地图必须包含在大地图中,2)0和1必须完全对应 70分解法:暴力搜索大地图 ...

  4. ccfcsp 202206-2 寻宝大冒险

    问题描述 就是这个题,输入与输出格式不再罗列,题目目的大概意思为:给定一个小的地图B,在一个大的地图A中找到B,也就是B是A的子图,求有几个这样的子图. ccf的第二题给定的限制时间和空间都很大,所以 ...

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

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

  6. ccf csp寻宝!大冒险!(C语言)

    ccf csp寻宝!大冒险! 题目背景 暑假要到了.可惜由于种种原因,小 P 原本的出游计划取消.失望的小 P 只能留在西西艾弗岛上度过一个略显单调的假期--直到-- 某天,小 P 获得了一张神秘的藏 ...

  7. CSP 寻宝!大冒险! C++

    CSP 寻宝!大冒险! C++ 思路:遍历绿化图的每个树,先判断藏宝图里树的数量和当前树的右上边长为s的正方形的树的数量是否一致,如果一致,再循环遍历判断是否相等. #include<bits/ ...

  8. ~1 ccf 2022-06-2 寻宝!大冒险!

    寻宝!大冒险! 题目描述 输入 输出 样例输入 样例输出 子任务 源代码 关于这题 题目描述 输入 输出 样例输入 样例一: 5 100 2 0 0 1 1 2 2 3 3 4 4 0 0 1 0 1 ...

  9. 4510. 寻宝!大冒险!

    Powered by:NEFU AB-IN Link 文章目录 4510. 寻宝!大冒险! 题意 思路 代码 4510. 寻宝!大冒险! 题意 第26次CCF计算机软件能力认证 题目略 简短版:有一个 ...

最新文章

  1. lisp修改天正标高值_【求教】如何批量修改天正字体
  2. torch 归一化,momentum用法详解
  3. Spring ----Bean的生命周期
  4. 天梯赛 L1-027 出租 (20 分)
  5. 多重链表 十字链表存储稀疏矩阵,中缀表达式
  6. 实验7.3 字符串 7-8 删除重复字符
  7. 【linux】kali 创建应用程序桌面图标(以burpsuite为例)
  8. 用Hough投票做物体检测的3篇文献
  9. Atitit 基于图片图像 与文档混合文件夹的分类
  10. objective-C 数据类型转换
  11. Struts 2.0 入门
  12. element ui的时间选择器
  13. 手把手教你学单片机--51单片机C语言开发
  14. 用 Python 自制成语接龙小游戏!
  15. 阵列卡PERCH330_H730配置手册
  16. 关于电感数字传感器的一些问题
  17. matlab的grid on,Matlab基本函数-grid、box函数 | 学步园
  18. vscode怎么看调用的接口_编辑器 VS Code 如何快速查看 Go 接口?
  19. 魔百和E900V22C_905L3A(B)_5621DS-安卓9.0-纯净语音
  20. python第一弹 爬虫淘女郎图片

热门文章

  1. 百度地图路书开发---增加路书销毁
  2. 谁敢用普通话把这首诗读出来,笑到肚子痛!
  3. MSF中使用Nessus
  4. 整理智能车中使用到的摄像头图像处理算法
  5. 【验证小bai】利用verdi让所有环境force现身
  6. 单招计算机专业怎么面试,计算机专业面试题目 高职提前招生
  7. 应用宝(企业)上线APK流程
  8. php短连接解析,微博短链接算法php版本实现代码
  9. 说说在 Spring AOP 中如何实现类加载期织入(LTW)
  10. Jquery实现图片切换的三种方法