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

P1228 地毯填补问题(葬送的芙蓉王【bushi】)

地毯填补问题

题目描述

相传在一个古老的阿拉伯国家里,有一座宫殿。宫殿里有个四四方方的格子迷宫,国王选择驸马的方法非常特殊,也非常简单:公主就站在其中一个方格子上,只要谁能用地毯将除公主站立的地方外的所有地方盖上,美丽漂亮聪慧的公主就是他的人了。公主这一个方格不能用地毯盖住,毯子的形状有所规定,只能有四种选择(如图):

并且每一方格只能用一层地毯,迷宫的大小为 2 k × 2 k 2^k\times 2^k 2k×2k 的方形。当然,也不能让公主无限制的在那儿等,对吧?由于你使用的是计算机,所以实现时间为 1 1 1 秒。

输入格式

输入文件共 2 2 2 行。

第一行一个整数 k k k,即给定被填补迷宫的大小为 2 k × 2 k 2^k\times 2^k 2k×2k 0 < k ≤ 10 0\lt k\leq 10 0<k10);
第二行两个整数 x , y x,y x,y,即给出公主所在方格的坐标( x x x 为行坐标, y y y 为列坐标), x x x y y y 之间有一个空格隔开。

输出格式

将迷宫填补完整的方案:每一补(行)为 x y c x\ y\ c x y c x , y x,y x,y 为毯子拐角的行坐标和列坐标, c c c 为使用毯子的形状,具体见上面的图 1 1 1,毯子形状分别用 1 , 2 , 3 , 4 1,2,3,4 1,2,3,4 表示, x , y , c x,y,c x,y,c 之间用一个空格隔开)。

样例 #1

样例输入 #1

3                          
3 3

样例输出 #1

5 5 1
2 2 4
1 1 4
1 4 3
4 1 2
4 4 1
2 7 3
1 5 4
1 8 3
3 6 3
4 8 1
7 2 2
5 1 4
6 3 2
8 1 2
8 4 1
7 7 1
6 6 1
5 8 3
8 5 2
8 8 1

提示

spj 报错代码解释:

  1. c c c 越界;
  2. x , y x,y x,y 越界;
  3. ( x , y ) (x,y) (x,y) 位置已被覆盖;
  4. ( x , y ) (x,y) (x,y) 位置从未被覆盖。

upd 2023.8.19 \text{upd 2023.8.19} upd 2023.8.19:增加样例解释。

样例解释

大致思路

当k=1时,我们可以非常容易得到毯子填补的方案。当k=2甚至更大时,我们可以将其划分为四大块,但是公主位只有一个,而对于其他没有公主位的四方格,似乎和原问题形式不一样。但是我们可以对其加以处理,使其四个子问题都具有相同形式——即,我们可以手动为其他三个没有公主位的四方格增加新的“公主位”。例如,当公主位在左上角时,我们可以将剩余三个四方格的交界处用毯子1来补上,这样每个四方格都会被分配到一个公主位,称为特殊的方阵,问题便迎刃而解(如图所示)。因此我们就可以采用分治的方法去不断将正方形划分为4个子正方形,再分别填充,直到小正方形边长为1时,就是公主位了,不用做任何处理。

8x8的方格里,公主在右上角的格子里,然后在左上角的4x4方格中,选右下角,在左下角的方格中,选右上角,在右下角的方格中,选左上角,组成一个L,现在一个8x8的方格被分为四个4x4的方格,每个4x4的方格中,都有一块被挖掉的部分,左上角的4*4方格中被挖掉的部分是它右下角组成L的那一块,右上角的4x4方格中,挖去的是公主的位置,左下角和右下角的方格,挖去的都是L那部分

然后对每个4x4方格,重复以上操作,直到方格划分为2*2的,四个格子中有一个被挖去,另外三个自然组成一个L

AC CODE

#include<bits/stdc++.h>
using namespace std;// 正方形左上角坐标xx和yy,公主坐标x和y,正方形边长k
void work(int xx,int yy,int x,int y,int k){if(k == 1)  return;k/=2;// 左上角if(x < xx+k && y < yy+k){printf("%d %d %d\n",xx+k,yy+k,1);// 递归覆盖左上角work(xx,yy,x,y,k);// 覆盖右下角work(xx+k,yy+k,xx+k,yy+k,k);// 覆盖左下角work(xx+k,yy,xx+k,yy+k-1,k);// 覆盖右上角work(xx,yy+k,xx+k-1,yy+k,k);}// 右上角else if(x < xx+k && y >= yy+k){printf("%d %d %d\n",xx+k,yy+k-1,2);// 递归覆盖左上角work(xx,yy,xx+k-1,yy+k-1,k);// 覆盖右下角work(xx+k,yy+k,xx+k,yy+k,k);// 覆盖左下角work(xx+k,yy,xx+k,yy+k-1,k);// 覆盖右上角work(xx,yy+k,x,y,k);}// 左下角else if(x >= xx+k && y < yy+k){printf("%d %d %d\n",xx+k-1,yy+k,3);// 递归覆盖左上角work(xx,yy,xx+k-1,yy+k-1,k);// 覆盖右下角work(xx+k,yy+k,xx+k,yy+k,k);// 覆盖左下角work(xx+k,yy,x,y,k);// 覆盖右上角work(xx,yy+k,xx+k-1,yy+k,k);}// 右下角else{printf("%d %d %d\n",xx+k-1,yy+k-1,4);// 递归覆盖左上角work(xx,yy,xx+k-1,yy+k-1,k);// 覆盖右下角work(xx+k,yy+k,x,y,k);// 覆盖左下角work(xx+k,yy,xx+k,yy+k-1,k);// 覆盖右上角work(xx,yy+k,xx+k-1,yy+k,k);}
}int main()
{int x,y,k;cin >> k >> x >> y;work(1,1,x,y,(1 << k));return 0;
}

相关文章:

P1228 地毯填补问题(葬送的芙蓉王【bushi】)

地毯填补问题 题目描述 相传在一个古老的阿拉伯国家里&#xff0c;有一座宫殿。宫殿里有个四四方方的格子迷宫&#xff0c;国王选择驸马的方法非常特殊&#xff0c;也非常简单&#xff1a;公主就站在其中一个方格子上&#xff0c;只要谁能用地毯将除公主站立的地方外的所有地…...

352. 闇の連鎖(树上差分,LCA)

352. 闇の連鎖 - AcWing题库 传说中的暗之连锁被人们称为 Dark。 Dark 是人类内心的黑暗的产物&#xff0c;古今中外的勇者们都试图打倒它。 经过研究&#xff0c;你发现 Dark 呈现无向图的结构&#xff0c;图中有 N 个节点和两类边&#xff0c;一类边被称为主要边&#xff…...

dcat admin + dingo + nginx 开发前台

前言 Dcat Admin 是一个功能强大的后端框架&#xff0c;主要用于开发管理后台。然而&#xff0c;大多数网站不仅需要一个管理后台&#xff0c;还需要一个用户界面&#xff0c;即“前台”&#xff0c;以及它们自己的用户系统。 为了实现这一目标&#xff0c;我们需要对 Dcat A…...

安卓线性布局LinearLayout

<?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"android:layout_width"match_parent"android:…...

Advanced CNN

文章目录 回顾Google NetInception1*1卷积Inception模块的实现网络构建完整代码 ResNet残差模块 Resedual Block残差网络的简单应用残差实现的代码 练习 回顾 这是一个简单的线性的卷积神经网络 然而有很多更为复杂的卷积神经网络。 Google Net Google Net 也叫Inception V…...

判断当前设备是不是安卓或者IOS?

代码(重要点): 当前文件要是 xxx.js文件,就需要写好代码后调用才会执行: // 判断是不是安卓 const isAndroid () > {return /android/.test(navigator.userAgent.toLowerCase()); }// 判断是不是ios const isIOS () > {return /iphone|ipad|ipod/.test(navigator.use…...

使用C++操作Matlab中的mat文件

matlab提供读写MAT文件的头文件和库函数&#xff0c;下面列出这些文件的路径&#xff0c;其中matlabroot指matlab安装的路径&#xff0c;arch来识别平台架构 头文件在matlabroot\extern\include库函数在matlabroot\bin\win64例程在matlabroot\extern\examples\eng_mat头文件 …...

【OCPP】ocpp1.6协议第3.5章节:本地授权和离线行为-介绍及翻译

目录 3.5章节 概述 3.5 本地鉴权和离线行为-译文(Local Authorization & Offline Behavior) 3.5.1 鉴权缓存-译文(3.5.1. Authorization Cache) 3.5.2 本地鉴权列表-译文(Local Authorization List) 3.5.3 授权缓存和本地授权列表之间的关系-译文(Relation between A…...

OpenGL查询对象 Query Objects

查询对象和异步查询(Query Objects and Asynchronous Queries) Query Objects&#xff08;查询对象&#xff09;是OpenGL中的一种机制&#xff0c;用于获取有关一系列GL命令处理过程的信息。这些信息可以包括&#xff1a; 绘图命令处理的图元数量。写入变换反馈缓冲区的图元数…...

【数据分享】1929-2023年全球站点的逐日最高气温数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、湿度等指标&#xff0c;其中又以气温指标最为常用&#xff01;说到气温数据&#xff0c;最详细的气温数据是具体到气象监测站点的气温数据&#xff01; 之前我们分享过1929-2023年全球气象站…...

Docker深入解析:从基础到实践

Docker基础知识 Docker是什么&#xff1a;定义和核心概念解释 Docker是一个开源项目&#xff0c;它诞生于2013年&#xff0c;旨在自动化应用程序的部署过程&#xff0c; 让应用程序能够在轻量级的、可移植的、自给自足的容器中运行。这些容器可以在几乎任何机器上运行&#xf…...

【鸿蒙】大模型对话应用(一):大模型接口对接与调试

Demo介绍 本demo对接阿里云和百度的大模型API&#xff0c;实现一个简单的对话应用。 DecEco Studio版本&#xff1a;DevEco Studio 3.1.1 Release HarmonyOS API版本&#xff1a;API9 关键点&#xff1a;ArkTS、ArkUI、UIAbility、网络http请求、列表布局 官方接口文档 此…...

SQL的函数类型

目录 一、聚合函数 二、数值型函数 三、字符串函数 四、日期函数 五、流程控制函数 一、聚合函数 定义&#xff1a;聚合函数是指对一组值进行运算&#xff0c;最终返回是单个值&#xff0c;也可以被称为组合函数。 COUNT() 统计目标行数量的函数 AVG() 求平均值 SU…...

TSINGSEE青犀视频智慧电梯管理平台,执行精准管理、提升乘梯安全

一、方案背景 随着城市化进程的不断加快&#xff0c;我国已经成为全球最大的电梯生产和消费市场&#xff0c;电梯也成为人们日常生活中不可或缺的一部分。随着电梯数量的激增&#xff0c;电梯老龄化&#xff0c;维保数据不透明&#xff0c;物业管理成本高&#xff0c;政府监管…...

VMware:在部分链上无法执行所调用的函数,请打开父虚拟磁

VMware:在部分链上无法执行所调用的函数&#xff0c;请打开父虚拟磁 问题&#xff1a;VMware给虚拟机扩展硬盘容量&#xff0c;提示&#xff1a;在部分链上无法执行所调用的函数&#xff0c;请打开父虚拟磁。原因&#xff1a;是因为你的虚拟磁盘文件是分多个文件存储的&#xf…...

【数据结构 08】红黑树

一、概述 红黑树&#xff0c;是一种二叉搜索树&#xff0c;每一个节点上有一个存储位表示节点的颜色&#xff0c;可以是Red或Black。 通过对任何一条从根到叶子的路径上各个节点着色方式的限制&#xff0c;红黑树确保没有一条路径会比其他路径长上两倍&#xff0c;因而是接进…...

【百度Apollo】自动驾驶规划技术:实现安全高效的智能驾驶

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下…...

《C程序设计》上机实验报告(五)之一维数组二维数组与字符数组

实验内容&#xff1a; 1.运行程序 #include <stdio.h> void main( ) { int i,j,iRow0,iCol0,m; int x[3][4]{{1,11,22,33},{2,28,98,38},{3,85,20,89}}; mx[0][0]; for(i0;i<3;i) for(j0;j<4;j) if (x[i][j]>m) { mx[i][j]; iRowi…...

【BUG】联想Y7000电池电量为0且无法充电解决方案汇总

因为最近火灾很多&#xff0c;所以昨天夜晚睡觉的时候把插线板电源关掉了&#xff0c;电脑也关机了。 各位一定要注意用电安全&#xff0c;网上的那些事情看着真的很难受qvq。 第二天早上起床的时候一看发现电脑直接没电了&#xff0c;插上电源后也是显示 你一定要冲进去啊(ू˃…...

centos7常用命令之安装插件2

centos7安装插件1 7、kibana 【启动kibana,需要调整这个配置文件(/opt/kibana-6.3.0/config/kibana.yml)的一处ip地址,因为每次虚拟机的ip地址可能会有所不同&#xff0c; 同时访问页面地址的ip:5601时,ip地址也对应修改】 1.解压缩包 cd /opt/ tar -xvf kibana-6.3.0-linux-x…...

别再手动切换收发!用SP3485芯片实现RS485自动收发电路的保姆级教程

用SP3485芯片实现RS485自动收发电路的完整设计指南 在工业控制、楼宇自动化等长距离通信场景中&#xff0c;RS485接口因其抗干扰能力强、传输距离远等优势成为首选。然而传统RS485设计需要手动控制收发使能信号&#xff0c;不仅增加软件复杂度&#xff0c;还容易因时序错误导致…...

gemma-3-12b-it镜像开箱即用:3分钟完成多模态服务启动与测试

gemma-3-12b-it镜像开箱即用&#xff1a;3分钟完成多模态服务启动与测试 1. 快速了解Gemma-3-12b-it 如果你正在寻找一个既能理解文字又能看懂图片的AI模型&#xff0c;而且希望它能在普通电脑上运行&#xff0c;那么Gemma-3-12b-it就是为你准备的。 Gemma是Google推出的轻量…...

CAN FD通信中,如何用AUTOSAR配置搞定TDC和SSP?一个80% Offset的实战案例

CAN FD通信中AUTOSAR配置实战&#xff1a;TDC与SSP的80% Offset实现 在汽车电子领域&#xff0c;CAN FD&#xff08;Controller Area Network Flexible Data-rate&#xff09;正逐步取代传统CAN总线&#xff0c;成为车载网络的主流选择。随着数据传输速率提升至2Mbps甚至更高&a…...

DeOldify图像上色服务完整流程:基于Flask的Web服务部署与使用

DeOldify图像上色服务完整流程&#xff1a;基于Flask的Web服务部署与使用 1. 项目概述与核心功能 DeOldify图像上色服务是一个基于深度学习技术的Web应用&#xff0c;能够将黑白或褪色的老照片自动转换为彩色图像。这个项目通过简单的Web界面&#xff0c;让用户无需任何技术背…...

Jetson Orin上YOLOv8推理慢?手把手教你安装GPU版PyTorch并导出TensorRT引擎

Jetson Orin加速YOLOv8推理&#xff1a;从环境配置到TensorRT引擎优化实战 当你第一次在Jetson Orin上运行YOLOv8时&#xff0c;是否也被那令人窒息的推理速度震惊了&#xff1f;一张图片300多毫秒的处理时间&#xff0c;别说实时视频分析&#xff0c;就连批量处理图片都显得力…...

高效获取Sketchfab 3D资源:Firefox专属下载工具使用指南

高效获取Sketchfab 3D资源&#xff1a;Firefox专属下载工具使用指南 【免费下载链接】sketchfab sketchfab download userscipt for Tampermonkey by firefox only 项目地址: https://gitcode.com/gh_mirrors/sk/sketchfab 在3D设计与开发领域&#xff0c;获取高质量模型…...

CLIP-GmP-ViT-L-14实操手册:批量图片上传+多提示词并行计算优化

CLIP-GmP-ViT-L-14实操手册&#xff1a;批量图片上传多提示词并行计算优化 1. 项目概述 CLIP-GmP-ViT-L-14是一个经过几何参数化(GmP)微调的CLIP模型&#xff0c;在ImageNet和ObjectNet数据集上达到了约90%的准确率。这个强大的视觉-语言模型能够理解图片内容并将其与文本描述…...

TinyNAS子网硬件感知编译:针对T4 GPU的CUDA kernel自动调优

TinyNAS子网硬件感知编译&#xff1a;针对T4 GPU的CUDA kernel自动调优 1. 项目概述 1.1 这是什么技术&#xff1f; TinyNAS子网硬件感知编译是一项专门针对NVIDIA T4 GPU优化的深度学习编译技术。它通过智能分析神经网络结构和硬件特性&#xff0c;自动生成最优的CUDA kern…...

QGIS属性表关联Excel实战:5步搞定空间数据分析(附避坑指南)

QGIS属性表与Excel高效关联&#xff1a;从数据匹配到空间分析的完整指南 1. 为什么需要关联Excel与QGIS属性表&#xff1f; 在日常空间分析工作中&#xff0c;我们经常遇到这样的场景&#xff1a;拥有完整的空间数据&#xff08;如行政区划边界&#xff09;&#xff0c;但关键分…...

SmallThinker-3B部署实录:在16GB内存笔记本上稳定运行长链推理服务

SmallThinker-3B部署实录&#xff1a;在16GB内存笔记本上稳定运行长链推理服务 1. 环境准备与快速部署 想要在普通笔记本上运行大模型推理服务&#xff1f;SmallThinker-3B-Preview让你用16GB内存就能实现这个目标。这个模型基于Qwen2.5-3b-Instruct微调而来&#xff0c;专门…...