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

网站制作的网站开发知名的网络推广

网站制作的网站开发,知名的网络推广,做的最好的理财网站,东莞网站建设 兼职【题目链接】 ybt 2113:【24CSPJ普及组】小木棍(sticks) 洛谷 P11229 [CSP-J 2024] 小木棍 【题目考点】 1. 思维题,找规律 【解题思路】 解法1:找规律 该题为:求n根木棍组成的无前导0的所有可能的数…

【题目链接】

ybt 2113:【24CSPJ普及组】小木棍(sticks)
洛谷 P11229 [CSP-J 2024] 小木棍

【题目考点】

1. 思维题,找规律

【解题思路】

解法1:找规律

该题为:求n根木棍组成的无前导0的所有可能的数值中的最小数值
要想使最值数值最小,首先考虑让数字位数尽量少。朴素地想,每位数字使用的木棍越多,数字位数越少。一位数字最多使用7根木棍,摆成“8”。
我们可以考虑,将n根木棍不断摆出数字“8”,看最后剩下几根木棍,再做处理。
每次摆出数字“8”用7根木棍,最后剩下的木棍数量为n%7

如果n%7 != 0,那么也可以理解为还差x=7-n%7个木棍,就可以摆出每位都是8的数字。
已知构成每种数字的木棍数,以及距离摆成8还差几根木棍(7减去数字的木棍数)

表1:
数字木棍数距离摆成8还差几根木棍
061
125
252
352
443
552
661
734
870
961

根据上表可知,n根木棍可以摆出的数值最小的数字的位数为 d = ⌈ n / 7 ⌉ d = \lceil n/7 \rceil d=n/7
,n为1时无法摆成数字。

如果n是7的倍数,那么就可以摆出 n / 7 = ⌈ n / 7 ⌉ n/7=\lceil n/7 \rceil n/7=n/7位8
如果n不是7的倍数,那么看在 ⌈ n / 7 ⌉ \lceil n/7 \rceil n/7位8中,去掉1~6根木棍后能否形成合法的无前导0的数字。
观察上表可知,1位"8"在去掉1~5根木棍后都可以剩下非0的数字。
如果需要去掉6根木棍

  • 如果是1位8去掉6根木棍,也就是n=1的情况,这种情况无法构成数字。
  • 如果是2位以上的8去掉6根木棍,那么可以第1位去掉1根,第2位去掉5根,可以得到合法的数字。

根据n%7的值分类讨论,假设数字总位数很大,看还差x根木棍就可以摆出 d d d位“8”时,如何在 d d d位“8”中取走x个木棍,可以使得剩下的木棍摆成的数值最小。总原则是:使高位数字尽可能小。

表2:
n%7x=7-n%7操作
0无操作
16最高位拿走5根变为1,第2位拿走1根变为0
25最高位拿走5根变为1
34最高位拿走2根变为2,第2位拿走1根变为0,第3位拿走1根变为0
43最高位拿走2根变为2,第2位拿走1根变为0
52最高位拿走2根变为2
61最高位拿走1根变为6

只要数字位数 d ≥ 3 d\ge 3 d3,都可以使用上述方法得到n根木棍摆出的最小数字。
对于数字位数 d ≤ 2 d\le 2 d2,也就是 1 ≤ n ≤ 14 1\le n\le 14 1n14的情况,可以手动枚举每种情况可以摆出的最小数字。总原则是:位数尽可能小。位数相同时,首位尽可能小。

表3:
木棍数量摆出的最小数字
1-1(无法摆出数字)
21
37
44
52
66
78
810
918
1022
1120
1228
1368
1488

对于每组数据,先输入n,再求出数字位数 d = ⌈ n / 7 ⌉ d=\lceil n/7 \rceil d=n/7
代码中使用公式: ⌈ a b ⌉ = ⌊ a − 1 b ⌋ + 1 \lceil \frac{a}{b} \rceil=\lfloor \frac{a-1}{b} \rfloor+1 ba=ba1+1

  • 如果数字位数 d ≤ 2 d\le 2 d2,则根据表3,直接通过木棍数量得出其可以构造出的最小数字。
  • 如果数字位数 d ≥ 3 d\ge 3 d3,则根据n%7的值以及表2,得到拼出的数字的前几位,后面的每位都是8。

【题解代码】

解法1:找规律

#include<bits/stdc++.h>
using namespace std;
#define N 100005
int minNum[20] = {0, -1 ,1 ,7 ,4 ,2 ,6 ,8 ,10 ,18 ,22 ,20 ,28 ,68 ,88};//minNum[i]:i根小木棍拼出有前导0的最小数字
int pn[7] = {0, 10, 1, 200, 20, 2, 6}, pd[7] = {0, 2, 1, 3, 2, 1, 1};//pn[i]:n%7==i时前几位摆出的数字 pd[i]:pn[i]的位数 
int main()
{int t, n, d;cin >> t;while(t--){cin >> n;//木棍数 d = (n-1)/7+1;//拼成的数字的总位数 if(d <= 2)cout << minNum[n] << endl;//如果n为1,拼不成数字,会输出-1 else{if(n%7 > 0)//只要n不是7的倍数,则需要通过pn输出前几位 cout << pn[n%7];for(int i = 1; i <= d-pd[n%7]; ++i)//pn[n%7]有pd[n&7]位,还需要输出d-pd[n%7]位8 cout << 8;cout << endl;}} return 0;
}
http://www.mmbaike.com/news/72899.html

相关文章:

  • 上海的网站开发公司网站管理与维护
  • 做健身类小程序的网站互联网广告推广是什么
  • 网站建设标志图seo优化方案策划书
  • 成功营销案例100例厦门seo百度快照优化
  • 重庆毛笔制作南宁网站seo优化公司
  • 网站建设登录页面怎么写怎么做一个自己的网页
  • 怎么做算命的网站常用的网络营销方法及效果
  • 施工企业信用评价seo外包服务公司
  • 建筑做地图分析的网站企点qq官网
  • 某网站的安全建设方案360优化大师最新版的功能
  • 泰安中商网络做的网站怎么进入想学互联网从哪里入手
  • 沧州营销型网站建设做优化的网站
  • 济南建设网站哪里好网站制作公司有哪些
  • 口碑好的高密网站建设搜狗输入法下载安装
  • 二级域名如何申请手机网站优化排名
  • 域名绑定空间后 一般多久能打开网站营销培训课程
  • iis6.1的网站建设及权限设置衡阳seo优化首选
  • wordpress备份与恢复教程seo刷关键词排名软件
  • 新闻网站建设的原因郑州网站建设哪家好
  • 有做网站代理运营的吗百度首页百度
  • 我们是设计师 网站建设专家seo需要懂代码吗
  • 新河网站快排seo新手怎么做seo优化
  • 在线做c 题的网站个人网页设计作品模板
  • 分析杭州高端网站建设开发的区别2022最新小学生新闻
  • 利用影视网站做cpa打开百度网页版
  • 抖音推广方案和推广方式小小课堂seo自学网
  • wordpress主题windows搜索引擎优化培训中心
  • 南通网站搜索引擎优化网站推广怎么优化
  • 商业网站建设视频教程百度seo排名优化教程
  • 高端网站建设信息站长统计推荐