news 2026/7/2 0:12:31

打卡信奥刷题(2535)用C++实现信奥 P2041 分裂游戏

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(2535)用C++实现信奥 P2041 分裂游戏

P2041 分裂游戏

题目描述

有一个无限大的棋盘,棋盘左下角有一个大小为nnn的阶梯形区域,其中最左下角的那个格子里有一枚棋子。你每次可以把一枚棋子“分裂”成两枚棋子,分别放在原位置的上边一格和右边一格。(但如果目标位置已有棋子,则不能这样做)你的目的是通过有限次的操作,让整个阶梯里不再有任何棋子。下图所示的是n=2n = 2n=2时的一种解法。

我们用从下往上数的方式标记行,从左往右数的方式标记列,以 (行,列) 来标记棋子,并且都从111开始。

例如,第三步中的三个棋子坐标分别为(3,1),(2,2),(1,2)(3,1),(2,2),(1,2)(3,1),(2,2),(1,2)

现在已知nnn,你需要做的是给出合适的操作序列。

输入格式

输入一个正整数nnn

输出格式

如果有解,第一行应包含一个正整数mmm,表示总共需要的操作步数。

以下mmm行,每行包括两个正整数xi,yix_i,y_ixi,yi,表示第iii步操作分裂的是处于第xix_ixi行第yiy_iyi列的棋子。

如果无解,只需在第一行输出−1-11

输入输出样例 #1

输入 #1

1

输出 #1

1 1 1

输入输出样例 #2

输入 #2

2

输出 #2

4 1 1 2 1 2 2 1 2

说明/提示

  • 对于40%40\%40%的数据:n≤8n \leq 8n8
  • 对于100%100\%100%的数据:n≤1000n \leq 1000n1000

C++实现

#include<bits/stdc++.h>usingnamespacestd;intmain(){intn;cin>>n;if(n==1){cout<<1<<endl;cout<<1<<" "<<1<<endl;}elseif(n==2){cout<<4<<endl;cout<<1<<" "<<1<<endl;cout<<2<<" "<<1<<endl;cout<<2<<" "<<2<<endl;cout<<1<<" "<<2<<endl;}else{cout<<-1<<endl;}return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 4:08:23

Let‘s Encrypt免费证书与HTTPS配置完全指南

本文详解如何使用Let’s Encrypt获取免费SSL证书&#xff0c;配置Nginx/Apache实现HTTPS&#xff0c;以及自动续期方案。前言 2024年了&#xff0c;网站还不上HTTPS&#xff1f; 浏览器会标记为"不安全"SEO排名受影响无法使用HTTP/2、HTTP/3用户数据传输有风险 以前S…

作者头像 李华
网站建设 2026/6/25 23:33:33

Django 中使用django-redis库与Redis交互API指南

一、理解Django缓存与原生Redis的区别Django缓存APIRedis原生数据类型用途键值对存储字符串(String)简单缓存不支持列表(List)消息队列、最新列表不支持集合(Set)去重、共同好友不支持有序集合(Sorted Set)排行榜、优先级队列不支持哈希(Hash)对象存储、多个字段二、获取原生Re…

作者头像 李华
网站建设 2026/7/1 13:17:50

NPM 包发布完整实战方案

NPM 包发布完整实战方案 一、环境准备阶段 1.1 检查当前环境 # 确认当前登录用户 npm whoami # 输出&#xff1a;jiangshiguang# 检查当前 registry 配置 npm config get registry # 期望&#xff1a;https://registry.npmjs.org/1.2 验证包配置 # 检查 package.json 关键配…

作者头像 李华
网站建设 2026/6/29 8:23:56

15、加密算法实现与应用

加密算法实现与应用 1. 引言 加密技术在信息安全领域扮演着至关重要的角色,它能够保护数据的机密性和完整性。本文将介绍几种常见的加密算法,包括凯撒密码、维吉尼亚密码、Base64编码解码、用户凭证验证等,并给出相应的实现代码和示例。 2. 凯撒密码(Caesar Cipher) 原…

作者头像 李华
网站建设 2026/7/1 21:56:28

67、系统内存与 STREAMS 数据结构深入解析

系统内存与 STREAMS 数据结构深入解析 1. 内核虚拟内存分配 在系统中,内核虚拟内存的分配是一个关键操作。在地址 0xc0003000 处有 2 页内核虚拟内存空闲,从 0xc001c000 开始有 2020 页空闲。当需要分配内核虚拟空间时(例如用于存放页表页),会调用 rmalloc() 例程…

作者头像 李华
网站建设 2026/7/1 19:42:58

基于微信小程序的乡镇中学教学管理系统的设计与实现论文案例

目 录摘 要 IAbstract II第一章 绪论 11.1 课题背景 11.2 课题意义 21.3 国内外研究现状 21.4 论文组织结构 3第二章 关键技术介绍 52.1 微信小程序开发 52.2 Java语言介绍 52.3 Vue.js框架简介 62.4 SpringBoot简介 72.5 MySQL数据库 7第三章 系统需求分析 83.1 可行性分析 83…

作者头像 李华