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

蓝桥杯省赛真题C++B组-裁纸刀2022

一、题目

问题描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小蓝有一个裁纸刀,每次可以将一张纸沿一条直线裁成两半。

小蓝用一张纸打印出两行三列共 6 个二维码,至少使用九次裁出来,下

图给出了一种裁法。

在上面的例子中,小蓝的打印机没办法打印到边缘,所以边缘至少要裁 4 次。另外,小蓝每次只能裁一张纸,不能重叠或者拼起来裁。

如果小蓝要用一张纸打印出 20 行 22 列共 440 个二维码,他至少需要裁多少次?

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 256M

二、思路

方法一:(错误不要看了)

        我的理解是一张纸只能裁剪出6个二维码,而且一张纸需要裁9次,现在有440个二维码,我们就需要看440个二维码能裁处几个整张的二维码,是否有剩下的二维码个数,有的话再看是需要裁剪几刀。440/6=73......2,最后还剩两个二维码的话,四个边需要裁四个边,还有再裁一刀分成两个二维码。73*9+4+1=662。

方法二:

        想用代码的方式解决,但是看题解后,我才发现题目中的裁剪原则:四个边四刀,因为题目说了公用了9刀,所以是用了5刀裁出的。

        题目问的是20 行 22 列共 440 个二维码,他至少需要裁多少次?图上的是2行3列6个二维码用了5刀(除过边),2行用了1刀,3列用了4刀(想想现实生活当中也是如此,假如先横着来一刀,剪开后的两半我们再分别去剪),类比,20行用了19刀,22列用20*(22-1)刀。

19+20*(22-1)+4=443

方法三:

        找规律:

二维码个数裁的次数
1

4+0

24+1
44+3
64+5
......
4404+(440-1)

三、代码

#include <iostream>
using namespace std;

int main() {
    cout << 19 + 20 * (22 - 1) + 4 << endl;
    return 0;
}

四、反思

没有好好理解题,按照我那个错误的思路,6个二维码最终是裁7刀,人家题目是裁9刀

也没有好好找规律

相关文章:

  • postgresql14编译安装脚本
  • 怎么实现: 大语言模型微调案例
  • AI能否跨越奇点
  • RabbitMQ使用延迟消息
  • 升级到碳纤维齿轮是否值得?
  • CCF-CSP认证 202104-2邻域均值
  • 【js逆向】
  • 牛客周赛:84:C:JAVA
  • 亚信安全发布第七期《勒索家族和勒索事件监控报告》
  • 以太网基础Vlan划分实验
  • C++学习之QT综合项目二经典翻金币小游戏及打包
  • 【LeetCode合并区间C++实现】【c++】【合并区间】
  • javase集合框架List篇
  • ds回答 什么是数据召回
  • 【数据结构】二叉搜索树、平衡搜索树、红黑树
  • 【初探数据结构】带环链表:原理、判断与数学证明
  • 使用 Switch Plus 将 ADTS 文件转为 MP3 格式简单教程
  • 「mysql」Mac mysql一路畅通式安装
  • Linux基础开发工具—vim
  • 【JavaEE】SpringBoot快速上手,探秘 Spring Boot,搭建 Java 项目的智慧脚手架
  • 巴菲特执掌60年,伯克希尔市值如何增长5.5万倍?详解五大经典投资案例
  • 五一假期多地政府食堂对外开放:部分机关食堂饭菜“秒没”
  • 陈逸飞《黄河颂》人物造型与借鉴影像意义
  • 夜读丨春天要去动物园
  • 奔驰一季度利润降四成,受美国加征关税影响放弃全年盈利展望
  • 160名老人报旅行团被扔服务区?张家界官方通报