CCF- CSP 202206-2寻宝!大冒险!暴力算法满分题解
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寻宝!大冒险!暴力算法满分题解相关推荐
- ccf寻宝!大冒险!python满分(敲开心~)
寻宝 大冒险 题目传送:http://118.190.20.162/view.page?gpid=T147 思路及代码: 核心点就是哈希. 之前刷的是70分,找不到之前的代码了,大概是建了一个很大的表 ...
- CSP 202206 题解:归一化处理,寻宝大冒险,角色授权,光线追踪,PS无限版
试题内容请前往CCF官网查看: CCF-CSP计算机软件能力认证考试 http://118.190.20.162/home.page 阅读本题解前,您应当了解下列知识: 线段树 教程 C++ 标准库( ...
- CCF CSP认证202206-02 寻宝!大冒险!C++题解
题目: 分析 通俗点说,我们需要解决的问题,就是计算小地图(藏宝图)能正好对上大地图(绿化图)的次数,需要保证两个条件:1)小地图必须包含在大地图中,2)0和1必须完全对应 70分解法:暴力搜索大地图 ...
- ccfcsp 202206-2 寻宝大冒险
问题描述 就是这个题,输入与输出格式不再罗列,题目目的大概意思为:给定一个小的地图B,在一个大的地图A中找到B,也就是B是A的子图,求有几个这样的子图. ccf的第二题给定的限制时间和空间都很大,所以 ...
- 2022-6-2寻宝大冒险(不用前缀和与map,c/c++实测满分)
总结: 离散点对应回稀疏矩阵时可以分块处理,根据限制条件筛选掉不必处理的块,缩短计算时间. 一.题目要求 题目背景 暑假要到了.可惜由于种种原因,小 P 原本的出游计划取消.失望的小 P 只能留在西西 ...
- ccf csp寻宝!大冒险!(C语言)
ccf csp寻宝!大冒险! 题目背景 暑假要到了.可惜由于种种原因,小 P 原本的出游计划取消.失望的小 P 只能留在西西艾弗岛上度过一个略显单调的假期--直到-- 某天,小 P 获得了一张神秘的藏 ...
- CSP 寻宝!大冒险! C++
CSP 寻宝!大冒险! C++ 思路:遍历绿化图的每个树,先判断藏宝图里树的数量和当前树的右上边长为s的正方形的树的数量是否一致,如果一致,再循环遍历判断是否相等. #include<bits/ ...
- ~1 ccf 2022-06-2 寻宝!大冒险!
寻宝!大冒险! 题目描述 输入 输出 样例输入 样例输出 子任务 源代码 关于这题 题目描述 输入 输出 样例输入 样例一: 5 100 2 0 0 1 1 2 2 3 3 4 4 0 0 1 0 1 ...
- 4510. 寻宝!大冒险!
Powered by:NEFU AB-IN Link 文章目录 4510. 寻宝!大冒险! 题意 思路 代码 4510. 寻宝!大冒险! 题意 第26次CCF计算机软件能力认证 题目略 简短版:有一个 ...
最新文章
- lisp修改天正标高值_【求教】如何批量修改天正字体
- torch 归一化,momentum用法详解
- Spring ----Bean的生命周期
- 天梯赛 L1-027 出租 (20 分)
- 多重链表 十字链表存储稀疏矩阵,中缀表达式
- 实验7.3 字符串 7-8 删除重复字符
- 【linux】kali 创建应用程序桌面图标(以burpsuite为例)
- 用Hough投票做物体检测的3篇文献
- Atitit 基于图片图像 与文档混合文件夹的分类
- objective-C 数据类型转换
- Struts 2.0 入门
- element ui的时间选择器
- 手把手教你学单片机--51单片机C语言开发
- 用 Python 自制成语接龙小游戏!
- 阵列卡PERCH330_H730配置手册
- 关于电感数字传感器的一些问题
- matlab的grid on,Matlab基本函数-grid、box函数 | 学步园
- vscode怎么看调用的接口_编辑器 VS Code 如何快速查看 Go 接口?
- 魔百和E900V22C_905L3A(B)_5621DS-安卓9.0-纯净语音
- python第一弹 爬虫淘女郎图片