POJ2248 Addition Chains 迭代加深
2024-09-02 21:22:21
不知蓝书的标程在说什么,,,,于是自己想了一下。。。发现自己的代码短的一批。。。
限制搜索深度+枚举时从大往小枚举,以更接近n+bool判重,避免重复搜索
#include<cstdio>
#include<iostream>
#include<cstring>
#define R register int
using namespace std;
inline int g() {
R ret=; register char ch; while(!isdigit(ch=getchar()));
do ret=ret*+(ch^); while(isdigit(ch=getchar())); return ret;
}
int n,dep=;
int a[];
bool v[];
inline bool dfs(int crt) {
if(crt==dep+) return a[dep]==n;
for(R i=crt-;i>=;--i) for(R j=i;j>=;--j) {
if(a[i]+a[j]>n) continue;
if(a[i]+a[j]<=a[crt-]) break;
if(v[a[i]+a[j]]) continue;
a[crt]=a[i]+a[j]; if(dfs(crt+)) return true;
} return false;
}
signed main() {
while(n=g(),n!=) { dep=;
memset(a,,sizeof(a));memset(v,false,sizeof(v)); a[]=;
while(!dfs()) ++dep;
for(R i=;i<=dep;++i) printf("%d ",a[i]); putchar('\n');
}
}
2019.04.26
最新文章
- node.js Websocket实现扫码二维码登录---GoEasy
- Delphi 调用Dll的两种方式
- Javascript进度条
- 【Tree 1】树形结构数据呈现的递归算法实现
- ASP.NET MVC5---通过QueryString传值
- Flash剪贴板功能
- Transact-SQL 学习小结
- bzoj1934: [Shoi2007]Vote 善意的投票
- 如何将mysql表结构导出成Excel格式的(并带备注)
- C#中检查网络是否连通的二种方法
- css小工具
- Java 写三角形 空心三角形 菱形 空心菱形
- java从pdf中提取文本
- pytorch学习-AUTOGRAD: AUTOMATIC DIFFERENTIATION自动微分
- codeforces 1041A Heist
- 7. The British Thached Roof 英国的茅草屋顶
- 排查java进程cpu占用高的问题
- 20145221高其_Final
- PAT 1043 输出PATest(20)(代码+思路)
- Springmvc 的post请求的json格式参数