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

UVa 529 Addition Chains

题目描述

题目要求构造一个加法链,即一个以111开头、以nnn结尾的严格递增序列,且序列中每个元素都是它前面某两个元素之和(这两个元素可以是同一个)。要求链的长度最短。若有多个解,输出任意一个。

输入格式

输入包含多个测试用例,每行一个整数nnn1≤n≤100001 \le n \le 100001n10000)。输入以n=0n = 0n=0结束。

输出格式

对于每个nnn,输出一行,包含加法链中的数字,用空格分隔。

样例

输入

5 7 12 15 77 0

输出

1 2 4 5 1 2 4 6 7 1 2 4 8 12 1 2 4 5 10 15 1 2 4 8 9 17 34 68 77

题目分析

本题的核心是使用迭代加深搜索(IDDFS\texttt{IDDFS}IDDFS)寻找最短加法链。

搜索策略

  • 111开始,依次确定下一个数。
  • 每个新数必须是已有某两个数之和(可以是同一个)。
  • 使用深度限制,从可能的最小深度开始递增,直到找到解。
  • 剪枝:若当前深度下,剩余步数内最大可能达到的值仍小于nnn,则剪枝(即使用当前最大值每次翻倍,最大可能值 = 当前值×2剩余步数\times 2^{剩余步数}×2剩余步数)。

复杂度分析

n≤10000n \le 10000n10000,深度不超过202020,搜索空间可控。

代码实现

// Addition Chains// UVa ID: 529// Verdict: Accepted// Submission Date: 2016-12-21// UVa Run Time: 0.000s//// 版权所有(C)2016,邱秋。metaphysis # yeah dot net#include<bits/stdc++.h>usingnamespacestd;intpart[40]={1},bestPart[40]={1},maxDepth,n;voiddfs(intdepth){if(depth<maxDepth){for(inti=depth-1;i>=0;i--){intnext=part[depth-1]+part[i];if(next<=n){part[depth]=next;if(part[depth]==n&&maxDepth>depth){memcpy(bestPart,part,sizeof(part));maxDepth=depth;}for(intj=depth+1;j<=maxDepth;j++)next*=2;if(next>=n)dfs(depth+1);}}}}intmain(intargc,char*argv[]){cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);while(cin>>n,n>0){if(n==1)maxDepth=0;elsemaxDepth=20;dfs(1);for(inti=0;i<=maxDepth;i++){if(i>0)cout<<' ';cout<<bestPart[i];}cout<<'\n';}return0;}
http://www.cnnetsun.cn/news/2961913.html

相关文章:

  • NSK精密级超大导程滚珠丝杠技术解析
  • 用 WorkBuddy 完成第一个全栈项目:从想法到上线的完整实践
  • Mermaid Live Editor:重塑技术文档图表创作体验的专业工具
  • 总线状态分析器(BSA)原理与MMDS11实战:嵌入式底层调试与性能剖析
  • 基础知识:“十五五“规划(2026-2030)深度分析与产业机会
  • AI电商视觉工具横评:从主图到短视频,电商卖家怎么选?(2026最新版)
  • Vite构建生态的稳定性演进:从esbuild版本危机到架构韧性设计
  • MGT5100 PSC模块:嵌入式串行通信的硬件引擎与多模式应用
  • Microchip嵌入式开发资源地图:从官方文档到社区支持的高效导航指南
  • 本地跑大模型的显存计算指南:从Qwen3.5到72B的硬件决策逻辑
  • OpenUSD工具链:构建企业级3D数据管道的5大核心优势
  • 2022 AI工程化落地实操指南:从大模型到可控生成与指令微调
  • 3分钟快速上手Akagi:你的实时麻将AI分析助手
  • 告别复杂绘图软件:3分钟学会用代码创建专业图表
  • 淘宝商品SKU图自动分类技术深度解析:从DOM容器定位到智能属性识别完整方案
  • 13.56MHz RFID多标签防冲突技术:从物理层到协议栈的工程实践
  • Hy3preview:基于混元重建的多阶段解码头Agent模型
  • 计算机毕业设计之南之峰户外攀登助手系统分析与设计
  • 国产多模态大模型落地实践与轻量化部署指南
  • 高性能中文拼音转换库:pinyin-pro的架构设计与实战应用深度解析
  • 3步让旧Mac重获新生:OpenCore Legacy Patcher终极指南
  • MPC8349EA MDS开发板BCSR寄存器详解与JTAG调试实战
  • 智源大会落幕,200+AI大佬达成了哪些共识?
  • AI资讯简报如何做到实用导向与技术落地
  • 电机控制安全设计:FMEA实战与安全机制深度解析
  • 猫抓视频下载完全指南:三步掌握网页资源嗅探技巧
  • Microchip嵌入式开发资源全攻略:从官方工具到社区实战
  • MGT5100 PSC寄存器详解:UART/Modem/AC97模式配置与中断FIFO管理
  • 车载LIN总线节点设计:MCP201收发器集成方案与工程实践
  • 深度解析:ComfyUI_smZNodes 如何实现跨平台 Stable Diffusion 生成一致性