LOJ10021 Addition Chains
2024-10-20 05:38:52
题目描述
原题来自:ZOJ 1937
已知一个数列 A0,A1,A2,A3,...,Am(其中A0=1,Am=n,A0<A1<A2<A3<...<Am )。对于每个 k,需要满足 Ak=Ai+Aj(0<=i,j<k这里 i 与 j 可以相等)。
现给定 n 的值,要求 m 的最小值(并不要求输出),及这个数列每一项的值(可能存在多个数列,只输出任一个满足条件的就可以了)。
输入格式
多组数据,每行给定一个正整数 n 。
输入以 0 结束。
输出格式
对于每组数据,输出满足条件的长度最小的数列。
样例
数据范围与提示
________________________
深搜,就是填一个表格,要求每个值是前面两个值的和,要求表格最短。
要求最短当然从大到小加,其他的就是普通搜索!
_________________________
1 #include<bits/stdc++.h>
2 using namespace std;
3 int n,ans;
4 int sz[105],da[105];
5 void dfs(int p)
6 {
7 if(sz[p-1]>n)return;
8 if(p-1>=ans)return ;
9 if(sz[p-1]==n && p-1<ans)
10 {
11 ans=p-1;
12 for(int i=1;i<p;++i)da[i]=sz[i];
13 }
14 for(int i=p-1;i>=1;--i)
15 {
16 sz[p]=sz[p-1]+sz[i];
17 dfs(p+1);
18 }
19 }
20 int main()
21 {
22 sz[1]=1;
23 while(scanf("%d",&n)==1 && n)
24 {
25 ans=105;
26 dfs(2);
27 for(int i=1;i<=ans;++i)printf("%d ",da[i]);
28 putchar('\n');
29 }
30 return 0;
31 }
最新文章
- [goa]golang微服务框架学习(三)-- 使用swagger-ui展示API
- C#------如何取出exe运行文件给客户使用
- JavaScript 上万关键字瞬间匹配——借助Hash表快速匹配
- mybatis中的resultMap
- Backbone.js学习之初识hello-world
- CentOS查看CPU信息、位数、多核信息
- [cocos2dx 3.0 + iap]中文文档(转)
- centos下安装chdmg
- CSS找到 (div+css请讲)
- Spring Security(05)——异常信息本地化
- 接口测试思路,jmeter,接口测试流程
- iOS项目之获取WebView的高度
- python 进程之间的数据共享
- Devops流程规范
- sql server备份和还原
- ASP_NET实现界面无刷新的DropdownList两级联动效果
- java—单例设计模式
- C# 其他图片格式转emf
- asp.net——地址栏传递中文参数乱码解决方案
- javascript设为首页、加入收藏
热门文章
- 表单综合HTML
- android stdio 打包
- C++语言基础——02数据的存取
- Itranswarp 搭建个人 Wiki
- JDK1.7-HashMap原理
- 【剑指 Offer】04.二维数组中的查找
- rm: cannot remove `/tmp/localhost-mysql_cacti_stats.txt&#39;: Operation not permitted
- P1220 关路灯(区间规划)
- P1140 相似基因(字符串距离,递推)
- CSAPP:Lab1 -DataLab 超详解