【洛谷2320】【HNOI2006】鬼谷子的钱袋(加强版)

信息学奥赛c++ 口袋 正解 题目描述克拉拉同学平时就喜欢一些奇奇怪怪的东西,她有一个神奇的口袋,她能从口袋里拿出各种神奇的东西。某一天她发现口袋里出现了一些像数字形状的物品, 我们用0 到9 这十种数字来表示不同的物品。克拉拉有一个非常喜欢的数字x, 现在她想用口袋里的给出的这些数字形状的物品来组成尽可能多的x,每个物品只能用一次。组装过程中克拉拉发现这些像数字形状的物品中,“2” 和“5”倒过来特别像,“6” 和“9” 倒过来也特别像,所以她可以用2 和5 互相代替,也能用6 和9互相代替(其他的不能代替)。 阅读详情

题目背景

鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政。有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了他极大的兴趣,那就是无字天书。但是,他的行程安排得很满,他已经买好了去邯郸的长途马车票,不巧的是出发时间是在拍卖会快要结束的时候。于是,他决定事先做好准备,将自己的金币数好并用一个个的小钱袋装好,以便在他现有金币的支付能力下,任何数目的金币他都能用这些封闭好的小钱的组合来付账。

题目描述

鬼谷子也是一个非常节俭的人,他想方设法使自己在满足上述要求的前提下,所用的钱袋数最少,并且没有任何两个钱袋装有相等的大于1的金币数。假设他有m个金币,你能猜到他会用多少个钱袋,并且每个钱袋装多少个金币吗?

输入输出格式

输入格式:

包含一个整数,表示鬼谷子现有的总的金币数目m。其中,m在long long范围内。

输出格式:

两行,第一行一个整数h,表示所用钱袋个数,第二行表示每个钱袋所装的金币个数,由小到大输出,空格隔开。

题解

首先要把题目读懂,即可以用n个1,1个2~m的数,通过加法组合成1~m的所有整数,当然,这所有的数字加起来要等于m,似乎有点复杂,该怎么处理呢?显然,不好直接处理本题,那么先假设一下m=10,如果想要组成1~m的所有整数,那么1是必须要的,因为如果不要1就不能组成1了,然后想,如果有一部分数通过加上一个数等于另外一部分数该多好!那么可以想到把10个数分成1~5和6~10,那么显然,1~5的数字加上5就能够组成6~10,所以取5,然后可以发现这就是不断地求子问题,那么递归,但是5是奇数怎么办?因为c++中的除法向下取整,所以分成1~2,3~5,1~2必须加上3才能组成3~5,那么把3取上,3又分成1和2,3显然1必须加上2才能取2,3,那么取2,因为1是必须取的,所以取1.透过现象看本质,可以发现求解的过程很像倍增,每一次可以取的数目都*2,那么如果2^n > m,那么n即为所求的袋子数,如何求每个袋子装的金币呢?根据之前模拟的过程记录答案即可.通过这道题要明白,一些用字母表示的数不好直接处理,可以设特殊值,从现象看本质,最后想到求解的方法!代码可以缩成1个循环!

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
long long ans[100];
int main(){
	long long n,cnt=0;
	scanf("%lld",&n);
	while(n){
		ans[++cnt]=(n+1)/2;
		n/=2;
	}
	printf("%d\n",cnt);
	for(int i=cnt;i>=1;i--)
	printf("%lld ",ans[i]);

	return 0;
}

P2320 [HNOI2006] 鬼谷子的钱袋 💖大家好,我是2022年3月份新人榜排名第三的🍁❄️鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政。有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了他极大的兴趣,那就是无字天书。但是,他的行程安排得很满,他已经买好了去邯郸的长途马车票,不巧的是出发时间是在拍卖会快要结束的时候。... 阅读详情

相关推荐

【倍增 进制】# P2320 [HNOI2006] 鬼谷子的钱袋|普及+

鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯的特派员前来向他咨询时政。 有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了他极大的兴趣,那就是无字天书。 但是,他的行程安排得很满,他已经买好了去邯郸的长途马车票,不巧的是出发时间是在拍卖会快要结束的时候。于是,他决定事先做好准备,将自己的金币数好并用一个个的小钱袋装好,以便在他现有金币的支付能力下,任何数目的金币他都能用这些封闭好的小钱的组合来付账。 鬼谷子也是一个非常节俭的人,他想方设

闻缺陷则喜何志丹 780

【BZOJ1192】鬼谷子的钱袋——二分思想

先看题目 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政。有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了他极大的兴趣,那就是无字天书。但是,他的行程安排得很满,他他已经买好了去邯郸的长途马车标,不巧的是出发时间是在拍卖会快要结束的时候。于是,他决定事先做好准备,将自己的金币数好并用一个个的小钱袋装好,以...

YIERsRP的博客 353

移相变压器Simulink建模与HVDC系统仿真实践

移相变压器是电力电子领域实现精确相位调节的核心设备,其通过特殊绕组设计改变输出电压相位角,在解决环网潮流不均、阻尼功率振荡等场景具有关键作用。本文基于MATLAB/Simulink环境,详细解析移相变压器的建模原理与技术实现,包括磁路耦合特性模拟、参数计算方法和控制策略设计。针对HVDC高压直流输电和FACTS柔性交流输电系统等典型应用,提供仿真模型搭建技巧与问题排查指南,特别涵盖新能源并网场景下的相位调节优化方案。通过实测数据验证,所建模型在稳态精度和动态响应方面均满足工程要求,为电力系统稳定性分析提供有

weixin_28278377的博客 271

【BZOJ - 1192】鬼谷子的钱袋(思维)

鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政。有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了他极大的兴趣,那就是无字天书。但是,他的行程安排得很满,他他已经买好了去邯郸的长途马车标,不巧的是出发时间是在拍卖会快要结束的时候。于是,他决定事先做好准备,将自己的金币数好并用一个个的小钱袋装好,以便在他现有金...

__似水流年__的博客 460

在Windows11上安装ubuntu版linux系统并实现桌面图形化(WSL)

在Windows11上安装ubuntu版linux系统并实现桌面图形化(WSL),xfce桌面美化、安装google-chrome

NiKoJJ‘s Blog 1万+

告别手动调参!PSCAD 4.2的Multiple-Run功能,5分钟搞定交流故障批量仿真

本文详细介绍了PSCAD 4.2的Multiple-Run功能如何高效处理交流故障批量仿真,告别传统手动调参的低效模式。通过五步配置法,工程师可在5分钟内完成数百次参数组合的仿真,显著提升电力系统分析效率。文章还包含工业级应用案例和高级调试技巧,助力实现故障仿真的自动化与智能化。

weixin_42552716的博客 277

BZOJ 1192 [HNOI2006] 鬼谷子的钱袋 题解

1192: [HNOI2006]鬼谷子的钱袋 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1068  Solved: 778 [Submit][Status] Description 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政。有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)

初学者 1626

LangGraph实战训练营-从零构建AI驱动的wiki知识库

本文深入解析 LangChain 团队开源的 Deep Agents 框架核心示例——LLM Wiki,一个基于大语言模型自动构建和维护持久化知识库的生产级 AI Agent 系统。文章从项目架构、环境搭建、核心原理到实战操作全面展开:详解 CompositeBackend 组合后端与细粒度权限控制的安全设计、四种工作模式(初始化/摄取/查询/质量检查)的完整流程、LangSmith 远程沙箱的隔离执行机制,以及人机协同审核(HITL)的实践应用。

program哲学 198

P2320 [HNOI2006]鬼谷子的钱袋

进制

Ajwallet 421

【二 Deepseek+Coze案例】【 2.2 Coze + Deepseek 实现小红书爆款笔记:打造专属Agent智能体】

摘要 本文介绍了如何利用Coze平台和Deepseek模型构建自动化Agent智能体,用于生成和优化小红书爆款笔记。文章首先分析了爆款笔记的核心特征,包括精准定位、吸引标题、实用内容、精美排版和热门标签。随后提出Agent智能体的功能需求,涵盖热点追踪、内容生成与优化、数据分析及自动发布等模块。在技术实现上,详细阐述了从环境配置、数据采集到内容生成与优化的全流程,并提供了Python代码示例,展示如何调用Coze函数获取热点数据及竞品笔记。该方案通过智能化的内容创作与运营策略,帮助用户高效打造高曝光的小红书

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 2291

你分得清ChatGPT、Gemini、Grok、豆包、千问、DeepSeek、OpenClaw、CloudCode、vibeCodeing、sKill、MCP,飞书、微信这些到底是什么吗?

AI技术生态呈现层级化发展,从基础模型到应用平台形成完整技术栈。核心分为五层:模型层(GPT、Gemini等基础模型)→AI助手层(ChatGPT等应用产品)→工具层(ClaudeCode等开发工具)→协议层(MCP等接口标准)→应用层(微信、飞书等平台)。未来趋势将形成"模型公司-开发框架-应用生态"三层结构,AI正逐步演变为新型操作系统,通过标准化协议连接各类外部系统,实现能力调用与生态整合。技术发展呈现出从底层基础设施到上层应用场景的垂直整合特征。

hy行者勇哥的博客 398

洛谷训练赛(P1111 修复公路,P2320 [HNOI2006]鬼谷子的钱袋)

总在不经意的年生,回首彼岸,纵然发现光景绵长。 题目背景 AA地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车。政府派人修复这些公路。 题目描述 给出A地区的村庄数NN,和公路数MM,公路是双向的。并告诉你每条公路的连着哪两个村庄,并告诉你什么时候能修完这条公路。问最早什么时候任意两个村庄能够通车,即最早什么时候任意两条村庄都存在至少一条修复完成的道路(可以由多条公路连成一条道路)...

0k-ok 364

从VLM到VLA概论

智驾视觉大模型

xiaomu_347的博客 1714

洛谷 P2320 [HNOI2006]鬼谷子的钱袋

23333题目:题意:分析:代码: 题目: 传送门 题意: 现在有nnn个金币,问我们怎么将它分成最少的袋子使得这些袋子内的金币可以组成任意的数 并且每个袋子内的金子数不能相同 分析: 我们可以用到分治的思想,我们将一个数可以分为1—n21—\frac{n}{2}1—2n​和n2+1—n\frac{n}{2}+1—n2n​+1—n 这样就不难看出,后者的所有数都等于前者加上n2\frac{n...

qq_35786326的博客 172

Pytorch入门实战(7):基于BERT实现文本隐喻二分类(Kaggle入门题目)

Bert入门实战,文本二分类问题

iioSnail的博客 4056

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

P2320 [HNOI2006]鬼谷子的钱袋(想法)

原题: https://www.luogu.org/problem/P2320 题意: 给出一个m,你讲起拆分成最少份,使得可以组成1到m之间的任意数,大于1数只能有一份。 解析: 以39为例,按照二进制分可以分成1,2,4,8,8,161,2,4,8,8,161,2,4,8,8,16,但是不能出现两个8,怎么改呢? 我们把两个8变成777和999,也就是1,2,4,7,9,161,2,4,7,9...

QAQ 421

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

洛谷 P2320 [HNOI2006]鬼谷子的钱袋 思维+二进制

https://www.luogu.org/problem/P2320 题目描述 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政。 有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了他极大的兴趣,那就是无字天书。 但是,他的行程安排得很满,他已经买好了去邯郸的长途马车票,不巧的是出发时间是在拍卖会快要结束的时...

xiji333的博客 205

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

洛谷--P2320 [HNOI2006]鬼谷子的钱袋

总感觉做过很多这样的题,把一个数至少分成多少个数能够使这些数组成小于该数的任意整数,把这个数转化为二进制,看有几位二进制就需要分成几个数,所以看到这个题的时候自然就想到了这个做法。 这个题大概意思也是这样,给一个整数,至少分成几个数,可以使这些数组成小于该数的任意整数,但是可能是我眼睛瞎了,没看到题目中还有一个要求,并且不有两个钱袋装有相同的大于1的金币数,就是相同的只能是1,不能有两个大于1的数...

Tom~~~ 231

洛谷P2320 [HNOI2006]鬼谷子的钱袋

https://www.luogu.org/problem/show?pid=2320#sub 题目描述全是图 数学思维,分治思想 假设总数为n 从n/2+1到n的数都可以用1~n的数+n/2表示出来 1~n/2的数也可以这样拆分成两份。 一路拆下去即可。 例如n=12时: {1 2 3 4 5 6}+6={7,8,9,10,11,12} {1,2,3}+3={4...

dezhen7015的博客 159

【HNOI2006】鬼谷子的钱袋

本题在洛谷上的链接:https://www.luogu.org/problemnew/solution/P2320 做法和二进制划分很像,,,原来我的二进制划分一直有点问题(之前我是枚举2的n次方然后减,逃)。。。 我们举20这个例子,假如我们要表示20以内的数,那么一定要取10,然后再表示出1到10之内的数,加上10也就表示出了11到20之内的数。同理,不断往下推,我们发现将m不断...

weixin_30408309的博客 131

[HNOI 2006] 鬼谷子的钱袋

BZOJ 1192 Luogu2320 运用了“分治”的思想,先选择\(n/2\),然后将问题转化为\([1,n/2]\)范围内的子问题,以此类推 一开始以为是将 n 的二进制表示中所有是 1 的拿出来,比如这样: #include <cstdio> #include <iostream> using namespace std; int main(){ int n...

weixin_30952103的博客 109
上一篇: 【BZOJ4247】挂饰
下一篇: 【POJ1275】Cashier Employment
dcx2001
博客等级 码龄9年 23粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值