【QED】高昂的猫 Ⅰ

news2024/11/28 22:51:39

目录

  • 题目背景
    • 题目描述
      • 输入格式
      • 输出格式
    • 测试样例
    • 样例说明
    • 数据范围
  • 思路
  • 核心代码

题目背景

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这是小橘。因为它总是看起来很高傲,所以人送外号“高昂的猫”。

题目描述

"锕狗"的房间里放着 n n n ( 1 ≤ n ≤ 1 0 9 ) (1 \leq n \leq 10^9) (1n109)个猫粮罐头。它们从左到右排成一列,上面写有编号,分别为从 1 1 1 n n n的正整数。

"小橘"是一只贪吃的猫,每天它都会从左往右巡视一遍这些罐头,并且从中吃掉一些。

每天在巡视罐头的时候,小橘都会将它在最左侧遇到的第 1 1 1个罐头吃掉,然后每间隔 2 2 2个罐头吃掉 1 1 1个罐头。

锕狗想知道,这些罐头一共能供小橘这只肥猫吃几天?而编号为 x x x ( 1 ≤ x ≤ n ) (1 \leq x \leq n) (1xn)的超级大罐头将会在第几天被吃掉?请你帮他解决这两个问题。

输入格式

输入仅一行,包含两个用空格分隔开的正整数 n 、 x n、x nx,分别表示猫粮罐头的总数和超级大罐头的编号。

输出格式

输出仅一行,包含两个正整数。两个数之间由一个英文空格隔开,分别表示小橘吃完所有罐头所需的天数,以及吃掉编号为 x x x的罐头是在第几天。

测试样例

8 6
5 2

样例说明

锕狗的房间里一共放了 8 8 8个猫粮罐头。

小橘第 1 1 1天吃掉了编号为 1 、 4 、 7 1、4、7 147的罐头。

小橘第 2 2 2天吃掉了编号为 2 、 6 2、6 26的罐头,其中包括编号为 6 6 6的超级大罐头。

小橘第 3 3 3天吃掉了编号为 3 3 3的罐头。

小橘第 4 4 4天吃掉了编号为 5 5 5的罐头。

小橘第 5 5 5天吃掉了编号为 8 8 8的罐头。

数据范围

1 ≤ n ≤ 1 0 9 1 \leq n \leq 10^9 1n109

1 ≤ x ≤ n 1 \leq x \leq n 1xn

思路

这个题目询问了两个问题,第一个是罐头一共能吃几天,还有一个是编号为 x x x的罐头是第几天吃掉的,首先我们来看第一个问题:
假设有罐头编号分别为:
1、2、3、4、5、6、7、8、9、10
第一天:1 、2、3、4、5、6、7、8、9、10
第二天:2、3、5、6、8、9
第三天:3、5、8、9
第四天:5、8
第五天:8
加入对每一天进行重新编码:
第一天:1 、2、3、4、5、6、7、8、9、10
第二天:1 、2、3、4、5、6
第三天:1 、2、3、4
第四天:1 、2
第五天:1
我们可以发现:对于重新编码的数字,每一天都是吃掉除以上余1的数字,根据这个我们可以更新每一天吃掉了多少个罐头推理出剩下的罐头数量,然后又可以继续推理出下一次的情况,一直到没有罐头
对于第二个问题:我们可以推理编号 x x x是当前第几个数字,如果是除以三余1的数那么就是被吃掉的日子。

核心代码

#include <bits/stdc++.h>
#define debug(x) cout<<#x<<" = "<<x<<"\n"
using namespace std;
typedef long long LL;

int main() {
    int n,x;
    cin>>n>>x;
    int a=0,b=0;
    while(n>0)
    {
        n-=(n+2)/3;
        a++;
    }
    while(x>0)
    {
        b++;
        if(x%3==1)break;
        x-=(x+2)/3;
    }
    cout<<a<<" "<<b;
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1300146.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

忘记PDF密码了,怎么办?

PDF文件有两种密码&#xff0c;一个打开密码、一个限制编辑密码&#xff0c;因为PDF文件设置了密码&#xff0c;那么打开、编辑PDF文件就会受到限制。忘记了PDF密码该如何解密&#xff1f; PDF和office一样&#xff0c;可以对文件进行加密&#xff0c;但是没有提供恢复密码的功…

C++设计模式——Adapter(适配器)模式

一、Adapter模式是个啥&#xff1f; 适配器模式在软件开发的江湖里&#xff0c;可以说用途是非常广的。下面几个经典的场景来说明适配器模式的使用。 场景一 场景二 假如你正在开发一款股票市场监测程序&#xff0c; 它会从不同来源下载 XML 格式的股票数据&#xff0c; 然后…

USB host是如何区分reset、disconnect以及suspend?

如题。 reset和disconnect 在OTG2.0中&#xff0c;当其配置程host模式&#xff0c;当host发送reset时D/D-线都为低电平&#xff0c;这是USB协议侧的复位&#xff08;与上电复位不同&#xff0c;协议上的复位是为了对连接的dev进行枚举&#xff0c;例如对端点0进行set address…

分类预测 | SSA-HKELM-Adaboost麻雀算法优化混合核极限学习机的数据分类预测

分类预测 | SSA-HKELM-Adaboost麻雀算法优化混合核极限学习机的数据分类预测 目录 分类预测 | SSA-HKELM-Adaboost麻雀算法优化混合核极限学习机的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.SSA-HKELM-Adaboost麻雀算法优化混合核极限学习机的数据分类…

完整方案开放下载!详解中国移动《通信网络中量子计算应用研究报告》

8月30日&#xff0c;中国移动在第四届科技周暨战略性新兴产业共创发展大会上重磅发布了《通信网络中量子计算应用研究报告》。 玻色量子作为中国移动在光量子计算领域的唯一一家合作企业兼战投企业&#xff0c;在量子计算应用于通信行业达成了深入合作&#xff0c;并在5G天线多…

【代码随想录】算法训练计划41

dp 1、343. 整数拆分 题目&#xff1a; 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 输入: n 10 输出: 36 解释: 10 3 3 4, 3 3 4 36。 思路…

电工--基本放大电路

电压放大倍数、输入电阻和输出电阻是放大电路的三个主要性能指标 共发射极基本交流放大电路 晶体管&#xff1a;电流放大作用。能量较小的输入信号通过晶体管的控制作用&#xff0c;去控制电源所共给的能量&#xff0c;以在输出端获得一个能量较大的信号 集电极电源电压&#…

接口测试 —— Jmeter读取数据库数据作测试参数

1、添加Jdbc Request 2、添加ForEach控制器(右键线程组->逻辑控制器->ForEach控制器) ①输入变量的前缀&#xff1a;mobilephone&#xff1b; 从jdbc request设置的变量得知&#xff0c;我们要取的值为mobilephone_1、mobilephone_2、mobilephone_3......所以这里输入m…

基于单片机智能病床呼叫系统设计

**单片机设计介绍&#xff0c;基于单片机智能病床呼叫系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的智能病床呼叫系统是一种利用单片机技术设计的医疗设备&#xff0c;它能够帮助病人在住院期间快速、方便…

侯捷C++ (二--STL标准库)

CSTL标准库与泛型编程 STL六大部件 容器 Containers分配器 Allocators 一种用来修饰容器或仿函数或迭代器接口的东西算法 Algorithms迭代器 Iterators适配器 Adapters仿函数 Functors 容器 前闭后开 大致分为两种容器&#xff1a;序列容器&#xff0c;关联容器 所谓关联容器…

安装 DevEco Studio 后不能用本地 Node.js 打开

安装 DevEco Studio 后第一次打开时&#xff0c;不能用本地 Node.js 打开 答&#xff1a;因为本地 Node.js 文件夹名字中有空格 Node.js路径只能包含字母、数字、“。”、“_”、“-”、“:”和“V” 解决方法&#xff1a; 1.修改文件夹名称 2.重新下载 注意&#xff1a;找一…

Verilog基础:$random系统函数的使用

相关阅读 Verilog基础​编辑https://blog.csdn.net/weixin_45791458/category_12263729.html $random系统函数语法的BNF范式如下所示&#xff0c;有关BNF范式相关内容&#xff0c;可以浏览以往文章Verilog基础&#xff1a;巴科斯范式(BNF)。 $random系统函数在每次调用时返回一…

【Docker】进阶之路:(一)容器技术发展史

【Docker】进阶之路&#xff1a;&#xff08;一&#xff09;容器技术发展史 什么是容器为什么需要容器容器技术的发展历程Docker容器是如何工作的 什么是容器 容器作为一种先进的虚拟化技术&#xff0c;已然成为了云原生时代软件开发和运维的标准基础设施。在了解容器技术之前…

14-1、IO流

14-1、IO流 lO流打开和关闭lO流打开模式lO流对象的状态 非格式化IO二进制IO读取二进制数据获取读长度写入二进制数据 读写指针 和 随机访问设置读/写指针位置获取读/写指针位置 字符串流 lO流打开和关闭 通过构造函数打开I/O流 其中filename表示文件路径&#xff0c;mode表示打…

C++学习笔记:继承

继承 什么是继承?继承的写法基类和派生类的赋值转换继承中的作用域派生类的默认成员函数单继承,多继承,虚拟继承is-a 和 has-a 什么是继承? 继承是C语言面向对象的三大特性之一&#xff0c;是面向对象程序设计使代码可以复用的最重要的手段,基本都是在一个类的基础上为了增加…

十九、FreeRTOS之FreeRTOS软件定时器

本节主要需要掌握以下内容&#xff1a; 1&#xff0c;软件定时器的简介&#xff08;了解&#xff09; 2&#xff0c;软件定时器的状态&#xff08;熟悉&#xff09; 3&#xff0c;单次定时器和周期定时器&#xff08;熟悉&#xff09; 4&#xff0c;软件定时器结构体成员介…

Unity中Batching优化的GPU实例化(2)

文章目录 前言一、GPU实例化的Shader准备步骤1、在Pass中声明实例化需要的变体2、UNITY_VERTEX_INPUT_INSTANCE_ID 在顶点着色器的输入(appdata)和输出(v2f可选)中添加(uint instanceID : SV_InstanceID). 前言 在上篇文章中&#xff0c;我们做了一些GPU实例化的前置准备&…

查看NVIDIA CUDA版本号的四种方法

查看CUDA版本号这里有三种方法。 nvidia-smi 运行nvidia-smi命令&#xff1a; 右上角可以看到CUDA版本号。 CUDA Toolkit 下载地址&#xff1a;https://developer.nvidia.com/cuda-downloads $nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2023 NV…

【数据结构 — 排序 — 交换排序】

数据结构 — 排序 — 交换排序 一.交换排序1.基本思想2.冒泡排序2.1.算法讲解2.2.代码实现2.2.1.函数定义2.2.2.算法接口实现2.2.3.测试代码实现2.2.4.测试展示 3.快速排序3.1.算法讲解3.2.各大算法分别单独实现3.2.1快速排序hoare版本3.2.2.快速排序hoare改进版三数取中选key法…

四:爬虫-Cookie与Session实战

四&#xff1a;Cookie与Session实战 ​ 在浏览网站的过程中&#xff0c;我们经常会遇到需要登录的情况&#xff0c;有些页面只有登录之后才可以访问。在登录之后可以连续访问很多次网站&#xff0c;但是有时候过一段时间就需要重新登录。还有一些网站&#xff0c;在打开浏览器…