P11229 [CSP-J 2024] 小木棍
[CSP-J 2024] 小木棍
题目描述
小 S 喜欢收集小木棍。在收集了 n n n 根长度相等的小木棍之后,他闲来无事,便用它们拼起了数字。用小木棍拼每种数字的方法如下图所示。

现在小 S 希望拼出一个正整数,满足如下条件:
- 拼出这个数恰好使用 n n n 根小木棍;
- 拼出的数没有前导 0 0 0;
- 在满足以上两个条件的前提下,这个数尽可能小。
小 S 想知道这个数是多少,可 n n n 很大,把木棍整理清楚就把小 S 折腾坏了,所以你需要帮他解决这个问题。如果不存在正整数满足以上条件,你需要输出 − 1 -1 −1 进行报告。
输入格式
本题有多组测试数据。
输入的第一行包含一个正整数 T T T,表示数据组数。
接下来包含 T T T 组数据,每组数据的格式如下:
一行包含一个整数 n n n,表示木棍数。
输出格式
对于每组数据:输出一行,如果存在满足题意的正整数,输出这个数;否则输出 − 1 -1 −1。
样例 #1
样例输入 #1
5
1
2
3
6
18
样例输出 #1
-1
1
7
6
208
提示
【样例 1 解释】
- 对于第一组测试数据,不存在任何一个正整数可以使用恰好一根小木棍摆出,故输出 − 1 -1 −1。
- 对于第四组测试数据,注意 0 0 0 并不是一个满足要求的方案。摆出 9 9 9、 41 41 41 以及 111 111 111 都恰好需要 6 6 6 根小木棍,但它们不是摆出的数最小的方案。
- 对于第五组测试数据,摆出 208 208 208 需要 5 + 6 + 7 = 18 5 + 6 + 7 = 18 5+6+7=18 根小木棍。可以证明摆出任何一个小于 208 208 208 的正整数需要的小木棍数都不是 18 18 18。注意尽管拼出 006 006 006 也需要 18 18 18 根小木棍,但因为这个数有前导零,因此并不是一个满足要求的方案。
【数据范围】
对于所有测试数据,保证: 1 ≤ T ≤ 50 1 \leq T \leq 50 1≤T≤50, 1 ≤ n ≤ 1 0 5 1 \leq n \leq 10^5 1≤n≤105。
| 测试点编号 | n ≤ n\leq n≤ | 特殊性质 |
|---|---|---|
| 1 1 1 | 20 20 20 | 无 |
| 2 2 2 | 50 50 50 | 无 |
| 3 3 3 | 1 0 3 10^3 103 | A |
| 4 , 5 4,5 4,5 | 1 0 5 10^5 105 | A |
| 6 6 6 | 1 0 3 10^3 103 | B |
| 7 , 8 7,8 7,8 | 1 0 5 10^5 105 | B |
| 9 9 9 | 1 0 3 10^3 103 | 无 |
| 10 10 10 | 1 0 5 10^5 105 | 无 |
特殊性质 A:保证 n n n 是 7 7 7 的倍数且 n ≥ 100 n \geq 100 n≥100。
特殊性质 B:保证存在整数 k k k 使得 n = 7 k + 1 n = 7k + 1 n=7k+1,且 n ≥ 100 n \geq 100 n≥100。
【题目分析】
我们可以知道要拼成0到9这十个数字的火柴棒个数分别是6,2,5,5,4,5,6,3,7,6。
不难发现,组成8的小木棍个数最多,需要7根小木棍,结合题目中给到的特殊数据,可以得到如果小木棍的数量为7的倍数,尽量去拼数字8最好,如果拼其它的数字,我们所得到的数字位数较多,而题目中要求拼出的数字尽可能小。
【代码实现】
那么根据7的倍数和余数关系可以得到:
- 如果正好是7的倍数,那么所有的小木棍都去拼8,可以拼出n/7个8
- 如果n%7的结果是1,那么会存在两种情况,第一种情况是只有1根小木棍,无法拼出任何一个数字,所以输出-1;第二种情况是,在尽量去拼8的情况下,会多出8根小木棍,可以拼成10,那么可以输出10和(n-8)/7个8。
- 如果n%7的结果是2,那么可以先输出一个1,然后让剩下的小木棍都去拼8,后面输出(n-2)/7个8。
- 如果n%7的结果是3,那么存在3种情况,第一种是小木棍的数量为3,那么输出7即可,第二种是小木棍的数量是10,那么可以输出22。第三种是小木棍的数量为17或者17以上的满足条件的数,可以先输出200,然后剩余的木棍拼8,输出(n-17)/7个8。
- 如果n%7的结果是4,那么存在两种情况,第一种是小木棍的数量为4,那么输出4即可,第二种是小木棍的数量为11或者11以上,那么可以先输出20,然后输出(n-11)/7个8。
- 如果n%7的结果是5,那么可以先输出一个2,然后剩余的木棍可以拼成(n-5)/7个8。
- 如果n%7的结果是6,那么可以先输出一个6,然后剩余的木棍可以拼成(n-6)/7个8。
#include<bits/stdc++.h>
using namespace std;
long long n, t;
int main() {cin >> t;while (t--) {cin >> n;int m = n % 7;if (m == 0) {for (int i = 1; i <= n / 7; i++)cout << 8;cout << endl;continue;}if (m == 1) {if (n == 1)cout << -1 << endl;else {cout << 10;for (int i = 1; i <= n / 7 - 1; i++)cout << 8;cout << endl;}continue;}if (m == 2) {cout << 1;for (int i = 1; i <= n / 7; i++)cout << 8;cout << endl;continue;}if (m == 3) {if (n == 3)cout << 7 << endl;else if (n == 10)cout << 22 << endl;else {cout << 200;for (int i = 1; i <= (n - 17) / 7; i++)cout << 8;cout << endl;}continue;}if (m == 4) {if (n == 4)cout << 4 << endl;else {cout << 20;for (int i = 1; i <= (n - 11) / 7; i++)cout << 8;cout << endl;}continue;}if (m == 5) {cout << 2;for (int i = 1; i <= (n - 5) / 7; i++)cout << 8;cout << endl;continue;}if (m == 6) {cout << 6;for (int i = 1; i <= (n - 6) / 7; i++)cout << 8;cout << endl;continue;}}return 0;
}
相关文章:
P11229 [CSP-J 2024] 小木棍
[CSP-J 2024] 小木棍 题目描述 小 S 喜欢收集小木棍。在收集了 n n n 根长度相等的小木棍之后,他闲来无事,便用它们拼起了数字。用小木棍拼每种数字的方法如下图所示。 现在小 S 希望拼出一个正整数,满足如下条件: 拼出这个数…...
【学习笔记】SAP ABAP——OPEN SQL(一)【SELECT语句】
SELECT语句简介 SELECT <lines> <columns> FROM <db> WHERE <condition>其中代表查询的件数,代表查询的字段名 SELECT SINGLE SELECT SINGLE <cols> FROM <db> WHERE <condition>该语句用于从数据库表中查询单条数据 …...
SQL注入(1)
1.数字型注入 例如PHP代码 “ Select username from users where id”.$_GET[id] 可以注意到,用户的输入ID字段没有任何过滤的,被直接拼接在了SQL查询语句中,由于ID没有被引号包裹ÿ…...
在AI时代,如何解决人的工作岗位被AI替代的问题?
在AI时代,工作岗位被AI替代的问题确实是一个重要的社会课题。随着技术的不断进步,许多传统的工作变得自动化,这带来了效率的提升,但也引发了就业方面的挑战。要应对这一问题,我们可以从以下几方面入手: 促进…...
Linux命令--paste
简介 paste命令用于合并文件行 参数说明 -d: 自定义间隔符,默认为tab -s:串行处理,非并行 示例 将两个文件,按照行合并 demo1.conf内容如下: name domain ip area user password roledemo2.conf内容如下 test t…...
数据结构模拟题[九]
数据结构试卷(九) 一、选择题 (30 分) 1.下列程序段的时间复杂度为( )。 for(i0 ; i<m ; i) for(j0 ; j<t ; j) c[i][j]0 ; for(i0 ; i…...
2024年10月国产数据库大事记-墨天轮
本文为墨天轮社区整理的2024年10月国产数据库大事件和重要产品发布消息。 目录 2024年10月国产数据库大事记 TOP102024年10月国产数据库大事记(时间线)产品/版本发布代表厂商大事记信创数据库上市公司2024年Q3财报 达梦数据:2024年前三季度…...
Andon 业务流程业务开发陷阱----从真实用户与管理者视角逻辑差异
Q : Andon 问题识别归类(就是问题的3层细化),是在事中,还是在事后? A : 不存在事中就细化归类,有悖于生产问题解决流程。 从操作员的角度来看,他们在事中可能只能识别出存在质量问题,但无法进行具体的质量问题编号…...
Python闭包|你应该知道的常见用例(上)
引言 在 Python 编程语言中,闭包通常指的是一个嵌套函数,即在一个函数内部定义的另一个函数。这个嵌套的函数能够访问并保留其外部函数作用域中的变量。这种结构就构成了一个闭包。 闭包在函数式编程语言中非常普遍。在 Python 中,闭包特别有…...
printf影响单片机中断速度
printf是我们常用的调试程序的手段,在第一版程序中,经常会使用printf来验证程序是否工作正确。这样的调试手段应该在正式版的程序发布前注释掉或者删除。而且不当地使用printf也会带来某些功能性问题,例如,在某项目中,…...
JavaScript 23种经典设计模式简介
23种JavaScript经典设计模式 JavaScript经典设计模式 通过之前的学习,我们知道设计模式是一种解决代码组织、代码复用和代码可维护性等问题的技术方法。它通过将代码以特定的方式组织起来,使代码结构更加清晰、可读性更高、易于维护和扩展。为了在开发…...
位运算相关算法
一、异或运算介绍 1、性质介绍 异或运算(XOR,Exclusive OR)是一种位运算符。对于两个位进行异或操作,当且仅当这两个位不同时,结果为 1;如果相同,则结果为 0。 A B A^B00001 1 101110 任何数…...
解决:无法在此设备上激活Windows因为无法连接到你的组织的激活服务器
问题: 桌面右下角会出现这个东西👇 在设置里查看激活状态就会看到👇 解决方法 : 1.打开CMD 搜索CMD,然后以管理员身份运行 2.设置 KMS服务器 1)命令行输入: slmgr /skms kms.03k.org 然后…...
【Spring】——SpringBoot项目创建
阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 引入 一:介绍 二:Spring Boot项目创建 0:项目目录 1:…...
聊一聊:ChatGPT搜索引擎会取代谷歌和百度吗?
当地时间 10 月 31 日,OpenAI 正式推出了 ChatGPT 搜索功能,能实时、快速获取附带相关网页来源链接的答案。这一重大升级标志着其正式向谷歌的搜索引擎霸主地位发起挑战。 本周五我们聊一聊: 欢迎在评论区畅所欲言,分享你的观点~ …...
分布式中常见的问题及其解决办法
分布式中常见的问题及其解决办法 一、多个微服务要操作同一个存储在redis中的变量,如何确保这个变量的正确性 答: 在多个微服务操作同一个存储在Redis中的变量时,可以采取以下措施来确保变量的正确性: 1、使用Redis的事务&…...
HTML 基础标签——多媒体标签<img>、<object> 与 <embed>
文章目录 1. `<img>` 标签主要属性示例注意事项2. `<object>` 标签概述主要属性示例注意事项3. `<embed>` 标签概述主要属性示例注意事项小结在现代网页设计中,多媒体内容的使用变得越来越重要,因为它能够有效增强用户体验、吸引注意力并传达信息。HTML 提…...
word mathml 创建粗体字母快捷键
在 mathml 中达到latex中 \mathbf{A} 的效果 由于word本身不支持这个命令,所以打算用快捷键实现 快捷键的功能是加粗光标前一个字目 1. Alt F8 打开宏,如果打不开可以尝试 Alt Fn F8 2. 输入 BoldPreviousCharacter 新建宏: Sub Bold…...
ROOT添加用户提示权限不够
有个系统已经上线过了,之后测评整改要求不能用root启动中间件,我就想着添加一个普通用户,赋予指定目录权限,然后启动应用就行了 。 结果用root用户创建账号提示权限不够,确认了几遍,是root 命令前面加sud…...
关于使用svgIcon 菜单折叠 显示文字情况
使用的工具:vue2,ant design vue 问题: **解决:在<svg-icon> 外面包一层 <a-icon> ** 使用: 在 main.js 中:...
Show-o2 3D Causal VAE空间:为文本、图像和视频模态提供可扩展解决方案
Show-o2 3D Causal VAE空间:为文本、图像和视频模态提供可扩展解决方案 【免费下载链接】Show-o [ICLR & NeurIPS 2025] Repository for Show-o series, One Single Transformer to Unify Multimodal Understanding and Generation. 项目地址: https://gitcod…...
从PostgreSQL老手视角:快速上手华为GaussDB极简版,这些操作习惯几乎一样
从PostgreSQL老手视角:快速上手华为GaussDB极简版的10个关键习惯迁移 如果你已经习惯了PostgreSQL的命令行操作和配置逻辑,第一次接触华为GaussDB时会有种奇妙的熟悉感——就像走进一间重新装修过的老房子,家具摆放的位置几乎没变,…...
KVM网络配置踩坑记:从virt-install的`--network`参数到virsh管理虚拟网桥
KVM网络配置实战:从virt-install到virsh的深度解析 当你在本地环境搭建KVM虚拟机时,网络配置往往是第一个拦路虎。不同于物理机插上网线就能用的简单体验,虚拟化环境中的网络需要经过多层抽象和配置才能正常工作。本文将带你深入KVM网络配置的…...
罗技鼠标宏完整实现方案:从Lua脚本到PUBG精准射击的进阶指南
罗技鼠标宏完整实现方案:从Lua脚本到PUBG精准射击的进阶指南 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 在竞技射击游戏《绝地求…...
交流充电桩通信系统设计:从PWM安全握手到CAN总线协议解析
1. 项目概述:从“插上电”到“充上电”的幕后功臣当你把电动汽车的充电枪插入交流充电桩的充电口,听到“咔哒”一声锁止,看到桩体屏幕亮起、开始计费充电时,这背后发生的一系列“对话”远比我们想象的要复杂。这不仅仅是物理连接&…...
别再混淆了!一张图看懂SAP特殊采购类40、70、80的核心区别与适用场景
深度解析SAP特殊采购类40/70/80:业务逻辑与实战选型指南 引言 在SAP供应链管理的复杂生态中,特殊采购类(Special Procurement Type)是连接多工厂协同的神经中枢。当企业面临跨工厂物料调配、集中采购或分布式生产等场景时…...
深入Linux内存管理:从虚拟内存到OOM Killer的完整解析
1. 从物理到虚拟:内存管理的演进与核心挑战干了这么多年系统开发和性能调优,内存问题始终是那个最让人头疼,但又不得不面对的“老朋友”。无论是半夜被报警叫醒处理线上服务的OOM(Out of Memory)崩溃,还是为…...
芜湖装修公司推荐哪家
在芜湖寻找一家可靠的装修公司?作为江城本土的老品牌,安徽百视装饰设计工程有限公司(简称芜湖百视装饰)绝对是您的理想选择。成立于2003年,已有24年完整的设计、工程、管理经历,是芜湖地区值得信赖的装修专…...
1951-2025年中国1km月平均气温逐年变化率数据集
摘要本数据集为中国1000米分辨率月平均气温数据集(1951-2025)衍生生成的“1951-2025年中国1千米月平均气温逐年变化率数据集”产品,输出格式为TIF,覆盖中国范围,时间表达为1951-2025年。产品围绕“年际变化率”算法组织…...
Augmentoolkit事实数据生成管道:打造精准问答AI的终极方法
Augmentoolkit事实数据生成管道:打造精准问答AI的终极方法 【免费下载链接】augmentoolkit Create Custom LLMs 项目地址: https://gitcode.com/gh_mirrors/au/augmentoolkit 想要创建专属的领域专家AI吗?Augmentoolkit事实数据生成管道为您提供了…...
