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

题解:洛谷 P5461 赦免战俘

【题目来源】

洛谷:P5461 赦免战俘 - 洛谷

【题目描述】

现有 \(2^n\times2^n(n\le10)\) 名作弊者站成一个正方形方阵等候 kkksc03 的发落。kkksc03 决定赦免一些作弊者。他将正方形矩阵均分为 \(4\) 个更小的正方形矩阵,每个更小的矩阵的边长是原矩阵的一半。其中左上角那一个矩阵的所有作弊者都将得到赦免,剩下 \(3\) 个小矩阵中,每一个矩阵继续分为 \(4\) 个更小的矩阵,然后通过同样的方式赦免作弊者……直到矩阵无法再分下去为止。所有没有被赦免的作弊者都将被处以棕名处罚。

给出 \(n\),请输出每名作弊者的命运,其中 \(0\) 代表被赦免,\(1\) 代表不被赦免。

【输入】

一个整数 \(n\)

【输出】

\(2^n\times2^n(n\le10)\)\(01\) 矩阵,代表每个人是否被赦免。数字之间有一个空格。

【输入样例】

3

【输出样例】

0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 1
0 0 0 0 0 1 0 1
0 0 0 0 1 1 1 1
0 0 0 1 0 0 0 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
1 1 1 1 1 1 1 1

【算法标签】

《洛谷 P5461 赦免战俘》 #模拟# #递归# #洛谷月赛#

【代码详解】

#include <bits/stdc++.h>  // 包含标准库头文件(万能头文件)
using namespace std;      // 使用标准命名空间int a[1100][1100];        // 定义二维数组:存储分形图案/*** 递归生成分形图案* @param x 当前区域左上角的x坐标* @param y 当前区域左上角的y坐标* @param z 当前区域的边长* @return 无返回值*/
int fzdg(int x, int y, int z) 
{if (z == 1)           // 基本情况:最小单元直接返回{return 0;}// 填充当前区域左上角的1/4区域for (int i = x; i < x + z / 2; i++) {for (int j = y; j < y + z / 2; j++) {a[i][j] = 1;  // 标记为填充区域}}// 递归处理其他三个1/4区域fzdg(x + z / 2, y, z / 2);          // 右上区域fzdg(x, y + z / 2, z / 2);          // 左下区域fzdg(x + z / 2, y + z / 2, z / 2);  // 右下区域
}int main()
{int n;                // 定义变量:分形迭代次数int fz;               // 定义变量:分形图案边长cin >> n;             // 输入迭代次数fz = pow(2, n);       // 计算分形图案边长(2的n次方)fzdg(1, 1, fz);       // 从(1,1)开始生成分形图案// 输出分形图案(0表示填充,1表示空白)for (int i = 1; i <= fz; i++) {for (int j = 1; j <= fz; j++) {if (a[i][j] == 1) cout << "0 ";  // 填充区域输出0else cout << "1 ";  // 空白区域输出1}cout << endl;          // 每行结束换行}return 0;                  // 程序正常结束
}

【运行结果】

3
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 1
0 0 0 0 0 1 0 1
0 0 0 0 1 1 1 1
0 0 0 1 0 0 0 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
1 1 1 1 1 1 1 1
http://www.jsqmd.com/news/387655/

相关文章:

  • 小白程序员轻松入门大模型:收藏这份RAG学习心得,从概念到实操全解析!
  • 题解:洛谷 P1304 哥德巴赫猜想
  • 题解:洛谷 P5739 【深基7.例7】计算阶乘
  • 大模型高薪岗位火热招募!年薪最高400万,小白程序员看过来,速收藏!
  • C++初学的常见问题 之一
  • Java - NIO
  • 大规模Azure迁移中的2个隐藏瓶颈
  • AI工作负载的黄金路径:标准化部署、可观测性和信任
  • MCP vs A2A:企业数据集成实战指南
  • 题解:洛谷 P5737 【深基7.例3】闰年展示
  • 浏览器访问跨域 - 教程
  • 开放式厨房适合装集成灶吗?高吸力集成灶选购指南|吸油烟黑科技揭秘 - 匠言榜单
  • 题解:洛谷 P5738 【深基7.例4】歌唱比赛
  • vue2项目改造为vue3遇到的问题以及解决办法
  • 信息论与编码篇---马氏距离
  • 题解:洛谷 P5736 【深基7.例2】质数筛
  • 题解:洛谷 P5735 【深基7.例1】距离函数
  • 单北斗变形监测在大坝安全和地质灾害预警中的应用与优势
  • 长豆荚目标检测:Faster R-CNN改进模型实战与优化 - 教程
  • 【每日一题】LeetCode 190. 颠倒二进制位
  • AVIF 如何转 PNG?几种常见在线转换方案对比
  • C++中的指针 之二
  • C++中的指针 之一
  • 2026最新AI大模型应用开发的核心技术学习线路看这里,程序员小白必看:大模型应用开发,收藏这份超全学习指南!
  • WebFlux vs MVC:Gateway集成若依框架的技术选型之争 - 实践
  • 掌握应用开发学习路线,大模型开发入门指南:小白也能轻松掌握的AI应用开发流程与实战(收藏版)
  • C++中的指针
  • prompt实践
  • AI_Agent也有体检中心了?AgentDoG开源框架,带你入门智能体安全防护
  • GLM-5与MiniMax-M2.5性能对比,小白程序员必看(收藏版)