P11229 [CSP-J 2024] 小木棍题解
P11229 [CSP-J 2024] 小木棍
题意
现在小 S 希望拼出一个正整数,满足如下条件:
· 拼出这个数恰好使用 n 根小木棍;
· 拼出的数没有前导 0;
· 在满足以上两个条件的前提下,这个数尽可能小。
思路
一步一步想
测试点1,2暴力
由于大家都能想到就不细细道来
特殊性质
这道题的特殊性这非常有用,可以帮我们想正解(60pts也可以拿一等了)

先来看特殊性质A,用一年级的小棒摆一摆,会发现位数尽量小的有益度大于全部写1.
那么我们可以用8来填充每个位置。
再来看特殊性质B,会发现一个神奇的规律,我们可以先保证8最多,然后剩下的手动切为最小
这可是一到找规律的好题,注意余数为3时有一个特判
小心卡常60pts(虽然我也不知道怎么TLE)
#include<bits/stdc++.h>
using namespace std;
int d[]={-1,-1,1,7,4,3,6,8,10};
void f(long long n){
if(n<=8) {
cout<<d[n]<<'\n';
return ;
}
else if(n%7==0){
while(n){
cout<<8;
n-=7;
}
cout<<'\n';
return ;
}
else if(n%7==1){
cout<<10;
n-=8;
while(n){
cout<<8;
n-=7;
}
cout<<'\n';
return ;
}
else if(n%7==2){
cout<<18;
n-=9;
while(n){
cout<<8;
n-=7;
}
cout<<'\n';
return ;
}
else if(n%7==3){
cout<<22;
n-=9;
while(n){
cout<<8;
n-=7;
}
cout<<'\n';
return ;
}
}
int main(){
int t;
cin>>t;
while(t--){
long long n;cin>>n;
f(n);
}
}
代码100pts
#include<bits/stdc++.h>
using namespace std;
const int f[10]= {0,-1,1,7,4,2,6,8,10};
int x,n,d,b;
int main() {
cin>>x;
for(int i=x; i; i--) {
b++;
if(b>x) return 0;
cin>>n;
if(n<=8)cout<<f[n];
else {
d=n%7;
if(d==0) {
for(int j=1; j<=n/7; j++)cout<<8;
}
if(d==1) {
cout<<10;
for(int j=1; j<n/7; j++)cout<<8;
}
if(d==2) {
cout<<1;
for(int j=1; j<=n/7; j++)cout<<8;
}
if(d==3) {
if(n==10)cout<<22;
else {
cout<<200;
for(int j=1; j<=n/7-2; j++)cout<<8;
}
}
if(d==4) {
cout<<20;
for(int j=1; j<n/7; j++)cout<<8;
}
if(d==5) {
cout<<2;
for(int j=1; j<=n/7; j++)cout<<8;
}
if(d==6) {
cout<<6;
for(int j=1; j<=n/7; j++)cout<<8;
}
}
cout<<'\n';
}
}
感谢大家阅读
300分拿捏
P11229 [CSP-J 2024] 小木棍题解的更多相关文章
- 洛谷 P1120 小木棍 题解
每日一题 day54 打卡 Analysis 一,管理员已经在题目中告诉你输入时去掉长度大于50的木棍. 二,想好搜索什么.很明显我们要枚举把哪些棍子拼接成原来的长棍,而原始长度(原来的长棍的长度)都 ...
- 小木棍 (codevs 3498)题解
[问题描述] 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过100. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长 ...
- 题解 P1120 【小木棍 [数据加强版]】
题面 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长度,编程帮 ...
- 【题解】洛谷P1120 小木棍(搜索+剪枝+卡常)
洛谷P1120:https://www.luogu.org/problemnew/show/P1120 思路 明显是搜索题嘛 但是这数据增强不是一星半点呐 我们需要N多的剪枝 PS:需要先删去超出50 ...
- 一本通&&洛谷——P1120 小木棍 [数据加强版]——题解
题目传送 一道特别毒瘤能提醒人不要忘记剪枝的题. 首先不要忘了管理员的话.忘把长度大于50的木棍过滤掉真的坑了不少人(包括我). 显然是一道DFS题 .考虑剪枝. 找找搜索要面临的维度.状态:原始木棍 ...
- 题解0007:小木棍(P1120)
(错误记录) 题目链接:https://www.luogu.com.cn/problem/P1120 题目描述:几根同样长的木棍,小冥把它们随意砍成了n段: 然后他又吃饱了撑的想把木棍拼上: 但是这个 ...
- 洛谷P1120 小木棍
洛谷1120 小木棍 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长 ...
- P1120 小木棍 [数据加强版] 回溯法 终极剪枝
题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过5050. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长度 ...
- [Luogu P1120]小木棍·加强版
#\(\mathcal{Description}\) 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过 \(50\) . 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开 ...
- [UVA307]小木棍 Sticks
题目大意:有一堆小木棍,把它们接成相同长度的小木棍,问结果的小木棍的最小长度是多少,多组数据 题解:$dfs$,各种剪枝. 卡点:无 C++ Code: #include <cstdio> ...
随机推荐
- Edu-Dict + English Learning Materials: Mdict词库:免费下载mdx/mdd/css文件资源,支持欧路,深蓝,goldendict电子词典
https://mdict.org https://github.com/xiaolai/apple-computer-literacy/blob/main/Install-Mdict-Diction ...
- Win11专业版电脑无法打开开始菜单的问题
新系统问题千千万,win11系统占一半.今天又有电脑基地的小伙伴碰到了win11系统无法打开开始菜单的情况,那么应该如何解决这个问题呢?下面,深度技术官网小编就分享详细的处理方法,一起看看小编是如何操 ...
- 万人同屏 角色动画优化 Animation Instancing动画实例化– SkinnedMeshRenderer的实例化 GPU Instancing
在上一篇文章中有个技术点引发了我的好奇 GPU Instancing 这个技术是Unity自带的功能,但是他不支持SkinnedMeshRenderer,所以要采用特殊方法 他这里采用GPU蒙皮+EC ...
- 一步一步学习使用LiveBindings(5) 使用TAdapterBindSource实现对象绑定
一步一步学习使用LiveBindings(5) 使用TAdapterBindSource实现对象绑定 在本系列的第1课介绍过TBindSourceDB绑定到TFDMemTableo数据库组件,也介绍了 ...
- Dify x 腾讯云 COS MCP:自然语言解锁智能数据处理,零代码构建 AI 新世界
关于 Dify 1)Dify 是什么? Dify 是一款开源的 大语言模型(LLM)应用开发平台.它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭 ...
- Wordpress 通过 SQL 直接获取文章链接
SELECT wpp.post_title, wpp.guid, wpp.post_date, REPLACE( REPLACE( REPLACE( REPLACE( wpo.option_value ...
- 【转】Java Commons.IO 库官方文档
Common IO 是一个工具库,用来帮助开发IO功能 它包括6个主要部分 Utility classes – 包括一些静态方法来执行常用任务 Input – InputStream 和 Reader ...
- 新版Unity的一些小玩意儿
打算用2019.3开发点东西,一建立项目有好多新东西,了解下 Preset Preset是Unity2018的新功能.Preset是保存对象属性的资源.Preset存储在项目的Project文件夹中, ...
- LiveNVR实现安防摄像头RTSP WEB无插件直播中ONVIF预制位接口的使用说明
ONVIF发现接入摄像机 通过ONVIF探测发现可以将摄像接入LiveNVR,并提供互联网无插件直播,具体介绍可以参考 https://www.liveqing.com/docs/products/L ...
- CMake构建学习笔记24-使用通用脚本构建PROJ和GEOS
1. 通用脚本 在之前的文章<CMake构建学习笔记21-通用的CMake构建脚本>中我们创建了一个通用的cmake构建脚本cmake-build.ps1: param( [string] ...