2023河南萌新联赛第(五)场:郑州轻工业大学-F 布鲁特佛斯

news2024/12/24 10:18:43

2023河南萌新联赛第(五)场:郑州轻工业大学-F 布鲁特佛斯

https://ac.nowcoder.com/acm/contest/62977/F

文章目录

  • 2023河南萌新联赛第(五)场:郑州轻工业大学-F 布鲁特佛斯
    • 题意
    • 解题思路
    • 代码

题意

给定一个边长为 n ( 2 ≤ n ≤ 1000 ) n(2\le n\le 1000) n(2n1000)的正方形方框,以及无数个边长为 2 ∼ 50 2\sim 50 250 的正方形拼图, 请求出恰好填满这个正方形方框的任意合法方案;若不存在构造方案,请输出 − 1 -1 1

下图是填满边长为 112 112 112的正方形边框的一种可能构造方式:
在这里插入图片描述
请注意,尽管拼图是无限的,但最终构造方案使用的正方形拼图个数应该小于 1 0 6 10^6 106

解题思路

最后一句是废话,无论怎么构造都不会超过 1 0 6 10^6 106

该题有多种构造方法,下面是出题人给的一种:
对于 n ≤ 50 n\le 50 n50则直接用一个正方形填充,对于 n n n为偶数,可以用边长为 2 2 2的小正方形填充,对于其他情况,可以按如下图:
在这里插入图片描述
对于左下角与右上角的长方形,长为 n − 9 n-9 n9,宽为 6 6 6,由于 n n n为奇数,所以 n − 9 n-9 n9也是奇数,可以直接用边长为 2 2 2的正方形填充,然后递归 n − 6 n-6 n6的长方形,仍然按上述方法填充,知道剩下边长 ≤ 50 \le 50 50时,结束。

代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n;
struct node{
    int x,y,z;
};
vector<node>a;
int x[1000]={0,1,1,4,7,7},y[1000]={0,1,7,7,1,4},z[1000]={0,6,3,3,3,3},cnt=5;
void dfs(int p,int q){
    if(n-p+1<=50){
        a.push_back(node{p,q,n-p+1});
        return;
    }
	for(int i=1;i<=cnt;i++)a.push_back(node{x[i]+p-1,y[i]+q-1,z[i]});
    for(int i=p+9;i<=n;i+=2)
        for(int j=q;j<q+6;j+=2)
            a.push_back(node{i,j,2}),a.push_back(node{j,i,2});
    dfs(p+6,q+6);
}
int main(){
	cin>>n;
	if(n<=50){
		cout<<"1\n";
		cout<<"1 1 "<<n;
		return 0;
	}
	if(n%2==0){
		cout<<n*n/4<<'\n';
		for(int i=1;i<=n;i+=2){
			for(int j=1;j<=n;j+=2){
				cout<<i<<' '<<j<<' '<<2<<'\n';
			}
		}
		return 0;
	}
    dfs(1,1);
    cout<<a.size()<<'\n';
    for(auto b:a){
        cout<<b.x<<' '<<b.y<<' '<<b.z<<'\n';
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/868682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前后端分离------后端创建笔记(02)

本文章转载于【SpringBootVue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客 仅用于学习和讨论&#xff0c;如有侵权请联系 源码&#xff1a;https://gitee.com/green_vegetables/x-admin-project.git 素材&#xff1a;https://pan.baidu.com/s/…

《甲午》观后感——GPT-3.5所写

《甲午》是一部令人深思的纪录片&#xff0c;通过生动的画面和真实的故事&#xff0c;向观众展示了中国历史上的一段重要时期。观看这部纪录片&#xff0c;我深受触动&#xff0c;对历史的认识也得到了深化。 首先&#xff0c;这部纪录片通过精心搜集的历史资料和珍贵的影像资料…

SLF4J日志绑定原理分析

前言 最近做项目&#xff0c;实际上也知道日志冲突的事&#xff0c;不过涉及MDC NDC数据传递&#xff0c;当日志框架冲突后&#xff0c;MDC和NDC就失效了&#xff0c;这里就涉及slf4j-api的MDC的绑定的过程&#xff0c;顺便分析了日志冲突实际生效的原因&#xff0c;理解SLF4J…

JavaScript类

JavaScript 类(class) 类是用于创建对象的模板。 我们使用 class 关键字来创建一个类&#xff0c;类体在一对大括号 {} 中&#xff0c;我们可以在大括号 {} 中定义类成员的位置&#xff0c;如方法或构造函数。 每个类中包含了一个特殊的方法 constructor()&#xff0c;它是类…

395. 至少有 K 个重复字符的最长子串

395. 至少有 K 个重复字符的最长子串 C代码&#xff1a;滑动窗口 ---- 不是吧&#xff0c;阿sir&#xff0c;这也能滑&#xff1f; // 返回滑动窗口的长度 // 满足条件的种类数量的可能为 [1, 26], 所以需要遍历26中情况的窗口长度 // 当 区间内所有种类数量 满足要求的种类数…

【Anaconda】安装及使用

知识目录 前言一、 Anaconda是什么二、为什么使用Anaconda三、安装步骤3.1 下载安装3.2 配置conda源 结语 前言 大家好&#xff01;我是向阳花花花花&#xff0c;本期给大家带来的是 Anaconda 安装及使用。 每日金句分享&#xff1a;故事不长&#xff0c;也不难讲。』—— 「…

深度学习(37)—— 图神经网络GNN(2)

深度学习&#xff08;37&#xff09;—— 图神经网络GNN&#xff08;2&#xff09; 这一期主要是一些简单示例&#xff0c;针对不同的情况&#xff0c;使用的数据都是torch_geometric的内置数据集 文章目录 深度学习&#xff08;37&#xff09;—— 图神经网络GNN&#xff08…

SpringCloudGateway配置跨域设置以及如何本地测试跨域

问题背景 有个服务A &#xff0c;自身对外提供服务&#xff0c;几个系统的前端页面也在调用&#xff0c;使用springboot 2.6.8开发的&#xff0c;自身因为有前端直接调用已经配置了跨域。 现在有网关服务&#xff0c;一部分前端通过网关访问服务A&#xff08;因为之前没有网关…

Android系统-ServiceManager2

目录 引言&#xff1a; 获取ServiceManager 流程图 注册系统服务 获取系统服务 引言&#xff1a; 注册或使用服务之前&#xff0c;需要通过ServiceManager这个DNS来找到对应的服务。那怎么找到ServiceManager呢&#xff1f; 怎么注册系统服务&#xff1f; 怎么获取系统…

分享一组天气组件

先看效果&#xff1a; CSS部分代码&#xff08;查看更多&#xff09;&#xff1a; <style>:root {--bg-color: #E9F5FA;--day-text-color: #4DB0D3;/* 多云 */--cloudy-background: #4DB0D3;--cloudy-temperature: #E6DF95;--cloudy-content: #D3EBF4;/* 晴 */--sunny-b…

Docker高级篇_DockerFile

目录 DockerFile简介构建DockerFile构建过程解析Docker执行Dockerfile的大致流程 DockerFile常用保留字指令FROMMAINTAINERRUNEXPOSEWORKDIRUSERENVVOLUMEADDCOPYCMDENTRYPOINT案例使用虚悬镜像 Docker微服务 DockerFile简介 Dockerfile是用来构建Docker镜像的文本文件&#x…

七、解析应用程序——枚举内容与功能

文章目录 1、web抓取2、发现隐藏内容2.1 蛮力技巧2.2 通过公布的内容进行推测2.3 利用公共信息 3、应用程序页面和功能路径4、发现隐藏参数 攻击应用程序的第一步是收集和分析与其有关的一些关键信息&#xff0c;以清楚了解攻击目标。解析过程首先是枚举应用程序的内容与功能&a…

HTML详解连载(2)

HTML详解连载&#xff08;2&#xff09; 专栏链接 [link](http://t.csdn.cn/xF0H3)下面进行专栏介绍 开始喽超链接作用代码示例解释经验分享 音频标签代码示例注意强调 视频标签代码示例注意强调 列表作用&#xff1a;布局内容排列整齐的区域。分类&#xff1a;无序列表&#x…

基于Googlenet深度学习网络的人员行为动作识别matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 1. 原理 1.1 深度学习与卷积神经网络&#xff08;CNN&#xff09; 1.2 GoogLeNet 2. 实现过程 2.1 数据预处理 2.2 构建网络模型 2.3 数据输入与训练 2.4 模型评估与调优 3. 应用领域…

Eclipse(STS)Enum 格式化配置

需求 枚举类 的字段&#xff0c;一般长度较小&#xff0c;格式化后&#xff0c;多个字段会变为一行。 需求&#xff1a;希望每个字段独立一行。 格式化后的样式&#xff0c;如下图所示&#xff1a; 配置 1. Windows - Preferences 2. Java-Formatter 如果没有自定义的格…

C++ 循环

有的时候&#xff0c;可能需要多次执行同一块代码。一般情况下&#xff0c;语句是顺序执行的&#xff1a;函数中的第一个语句先执行&#xff0c;接着是第二个语句&#xff0c;依此类推。 编程语言提供了允许更为复杂的执行路径的多种控制结构。 循环语句允许我们多次执行一个…

DVWA暴力破解高级模式宏爆破

先将安全等级调至高级&#xff0c;点击submit提交 浏览器开启bp代理 kali开启bp 工具&#xff0c;开启Proxy 点击Brute Force这个选项卡 bp拦截到请求的数据包 宏设置 如果是有的bp版本比较旧&#xff0c;在旧版本的上面菜单栏有一个Project options点击去选择Session&#xff…

Android系统-进程-Binder1-概述

目录 引言&#xff1a; 一次拷贝 Binder一次通信过程 应用启动中的binder交互 C/S模式&#xff1a; Binder COMMAND BWR数据结构&#xff1a; 引言&#xff1a; Android的binder是从openbinder发展过来的。包括了binder驱动&#xff0c;Native层&#xff0c;Java层。用…

【Matlab智能算法】RBF神经网络-遗传算法(RBF-GA)函数极值寻优——非线性函数求极值

上一篇博客介绍了GRNN-GA&#xff1a;GRNN神经网络遗传算法(GRNN-GA)函数极值寻优——非线性函数求极值&#xff0c;神经网络用的是GRNN神经网络&#xff0c;RBF神经网络&#xff08;径向基函数神经网络&#xff09;和GRNN神经网络有相似之处。本篇博客将GRNN神经网络替换成RBF…

安装istio和部署实例以及仪表盘

安装Istio 接下来我们将介绍如何在 Kubernetes 集群中安装 Istio&#xff0c;这里我们使用的是最新的 1.10.3 版本。 下面的命令可以下载指定的 1.10.3 版本的 Istio: ➜ ~ curl -L https://istio.io/downloadIstio | ISTIO_VERSION1.10.3 sh -如果安装失败&#xff0c;可以…