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] 小木棍题解的更多相关文章

  1. 洛谷 P1120 小木棍 题解

    每日一题 day54 打卡 Analysis 一,管理员已经在题目中告诉你输入时去掉长度大于50的木棍. 二,想好搜索什么.很明显我们要枚举把哪些棍子拼接成原来的长棍,而原始长度(原来的长棍的长度)都 ...

  2. 小木棍 (codevs 3498)题解

    [问题描述] 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过100. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长 ...

  3. 题解 P1120 【小木棍 [数据加强版]】

    题面 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长度,编程帮 ...

  4. 【题解】洛谷P1120 小木棍(搜索+剪枝+卡常)

    洛谷P1120:https://www.luogu.org/problemnew/show/P1120 思路 明显是搜索题嘛 但是这数据增强不是一星半点呐 我们需要N多的剪枝 PS:需要先删去超出50 ...

  5. 一本通&&洛谷——P1120 小木棍 [数据加强版]——题解

    题目传送 一道特别毒瘤能提醒人不要忘记剪枝的题. 首先不要忘了管理员的话.忘把长度大于50的木棍过滤掉真的坑了不少人(包括我). 显然是一道DFS题 .考虑剪枝. 找找搜索要面临的维度.状态:原始木棍 ...

  6. 题解0007:小木棍(P1120)

    (错误记录) 题目链接:https://www.luogu.com.cn/problem/P1120 题目描述:几根同样长的木棍,小冥把它们随意砍成了n段: 然后他又吃饱了撑的想把木棍拼上: 但是这个 ...

  7. 洛谷P1120 小木棍

    洛谷1120 小木棍 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50.     现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长 ...

  8. P1120 小木棍 [数据加强版] 回溯法 终极剪枝

    题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过5050. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度. 给出每段小木棍的长度 ...

  9. [Luogu P1120]小木棍·加强版

    #\(\mathcal{Description}\) 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过 \(50\) . 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开 ...

  10. [UVA307]小木棍 Sticks

    题目大意:有一堆小木棍,把它们接成相同长度的小木棍,问结果的小木棍的最小长度是多少,多组数据 题解:$dfs$,各种剪枝. 卡点:无 C++ Code: #include <cstdio> ...

随机推荐

  1. 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 ...

  2. Win11专业版电脑无法打开开始菜单的问题

    新系统问题千千万,win11系统占一半.今天又有电脑基地的小伙伴碰到了win11系统无法打开开始菜单的情况,那么应该如何解决这个问题呢?下面,深度技术官网小编就分享详细的处理方法,一起看看小编是如何操 ...

  3. 万人同屏 角色动画优化 Animation Instancing动画实例化– SkinnedMeshRenderer的实例化 GPU Instancing

    在上一篇文章中有个技术点引发了我的好奇 GPU Instancing 这个技术是Unity自带的功能,但是他不支持SkinnedMeshRenderer,所以要采用特殊方法 他这里采用GPU蒙皮+EC ...

  4. 一步一步学习使用LiveBindings(5) 使用TAdapterBindSource实现对象绑定

    一步一步学习使用LiveBindings(5) 使用TAdapterBindSource实现对象绑定 在本系列的第1课介绍过TBindSourceDB绑定到TFDMemTableo数据库组件,也介绍了 ...

  5. Dify x 腾讯云 COS MCP:自然语言解锁智能数据处理,零代码构建 AI 新世界

    关于 Dify 1)Dify 是什么? Dify 是一款开源的 大语言模型(LLM)应用开发平台.它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭 ...

  6. Wordpress 通过 SQL 直接获取文章链接

    SELECT wpp.post_title, wpp.guid, wpp.post_date, REPLACE( REPLACE( REPLACE( REPLACE( wpo.option_value ...

  7. 【转】Java Commons.IO 库官方文档

    Common IO 是一个工具库,用来帮助开发IO功能 它包括6个主要部分 Utility classes – 包括一些静态方法来执行常用任务 Input – InputStream 和 Reader ...

  8. 新版Unity的一些小玩意儿

    打算用2019.3开发点东西,一建立项目有好多新东西,了解下 Preset Preset是Unity2018的新功能.Preset是保存对象属性的资源.Preset存储在项目的Project文件夹中, ...

  9. LiveNVR实现安防摄像头RTSP WEB无插件直播中ONVIF预制位接口的使用说明

    ONVIF发现接入摄像机 通过ONVIF探测发现可以将摄像接入LiveNVR,并提供互联网无插件直播,具体介绍可以参考 https://www.liveqing.com/docs/products/L ...

  10. CMake构建学习笔记24-使用通用脚本构建PROJ和GEOS

    1. 通用脚本 在之前的文章<CMake构建学习笔记21-通用的CMake构建脚本>中我们创建了一个通用的cmake构建脚本cmake-build.ps1: param( [string] ...