当前位置: 首页 > news >正文

蓝桥杯每日一题2023.11.23

题目描述

 

题目分析 

本题使用递归模拟即可,将每一个大格子都可以拆分看成几个小格子,先将最开始的数字进行填入,使每一个对应小格子的值都为大格子对应的数,搜索找到符合要求的即可

(答案:50 33 30 41)

#include<bits/stdc++.h>
using namespace std;
const int N = 2e3 + 10;
bool vis[N];
int mp[N][N];
int a[50] = {0, 2, 5, 9, 11, 16, 17, 19, 21, 22, 24, 26, 30, 31, 33, 35, 36, 41, 50, 52};
void fill(int x, int y, int n, int a)
{for(int i = x; i < x + n; i ++){for(int j = y; j < y + n; j ++){mp[i][j] = a;}}
}
bool check()
{for(int i = 1; i <= 154; i ++){for(int j = 1; j <= 154; j ++){if(mp[i][j] == 0)return false;}}return true;
}
bool che(int x, int y, int n)
{if(x + n - 1 > 154 || y + n - 1 > 154)return false;for(int i = x; i < x + n; i ++){for(int j = y; j < y + n; j ++){if(mp[i][j])return false;}}return true;
}
bool dfs(int x, int y)
{if(check())return true;bool flag = true;for(int i = 1; i <= 154 && flag; i ++){for(int j = 1; j <= 154 && flag; j ++){if(mp[i][j] == 0){x = i;y = j;flag = false;}}}for(int k = 1; k <= 19; k ++){if(vis[k])continue;if(che(x, y, a[k])){fill(x, y, a[k], a[k]);vis[k] = true;if(dfs(x, y + a[k]))return true;fill(x, y, a[k], 0);vis[k] = false;}else return false;}return false;
}
int main()
{fill(1, 1, 47, 47);//在第一行第一列填充边长为47格子的数字 fill(1, 48, 46, 46);//在第一行前47列填完后开始填第一行第48列长度为46格子的数字fill(1, 94, 61, 61);dfs(1, 1);int ans = 0;for(int i = 1; i <= 154; i ++)//输出最后一行的每一列 {if(mp[154][i] != ans){ans = mp[154][i];cout << ans << ' ';	} } return 0;
}

相关文章:

  • 【算法专题】滑动窗口—无重复字符的最长子串
  • Django项目window环境部署
  • Python之Pygame游戏编程详解
  • 音视频项目—基于FFmpeg和SDL的音视频播放器解析(二十一)
  • Missing file libarclite_iphoneos.a 问题解决方案
  • Halcon Solution Guide I basics(4): Blob Analysis(连通性解析)
  • 【Java】认识异常
  • 数据提取PDF SDK的对比推荐
  • Photoshop下载秘籍:附送7款不用下载的在线PS工具!
  • 12.docker的网络-host模式
  • ModuleNotFoundError: No module named ‘torch_sparse‘
  • 浅谈Linux bash脚本----getopts获取脚本POSIX标准传参
  • 弹窗msvcp140_1.dll丢失的解决方法,超简单的方法分享
  • TrustAsia亮相Matter开发者大会,荣获Matter优秀赋能者奖
  • 【Spring进阶系列丨第四篇】学习Spring中的Bean管理(基于xml配置)
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 《深入 React 技术栈》
  • CSS中外联样式表代表的含义
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • ES6--对象的扩展
  • Git初体验
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • Java应用性能调优
  • linux学习笔记
  • Redis的resp协议
  • vue 配置sass、scss全局变量
  • 从零开始学习部署
  • 读懂package.json -- 依赖管理
  • 分享一份非常强势的Android面试题
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 前端路由实现-history
  • 小而合理的前端理论:rscss和rsjs
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • ###C语言程序设计-----C语言学习(6)#
  • (1)(1.13) SiK无线电高级配置(五)
  • (2015)JS ES6 必知的十个 特性
  • (7)svelte 教程: Props(属性)
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (第27天)Oracle 数据泵转换分区表
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (七)c52学习之旅-中断
  • (十)c52学习之旅-定时器实验
  • (四)js前端开发中设计模式之工厂方法模式
  • (四)库存超卖案例实战——优化redis分布式锁
  • (一)为什么要选择C++
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET Core引入性能分析引导优化
  • .NET 事件模型教程(二)