zoukankan      html  css  js  c++  java
  • POJ2248 Addition Chains 迭代加深

    不知蓝书的标程在说什么,,,,于是自己想了一下。。。发现自己的代码短的一批。。。


    限制搜索深度+枚举时从大往小枚举,以更接近n+bool判重,避免重复搜索

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #define R register int
    using namespace std;
    inline int g() {
        R ret=0; register char ch; while(!isdigit(ch=getchar())); 
        do ret=ret*10+(ch^48); while(isdigit(ch=getchar())); return ret;
    }
    int n,dep=1;
    int a[110];
    bool v[110];
    inline bool dfs(int crt) {
        if(crt==dep+1) return a[dep]==n;
        for(R i=crt-1;i>=1;--i) for(R j=i;j>=1;--j) {
            if(a[i]+a[j]>n) continue;
            if(a[i]+a[j]<=a[crt-1]) break;
            if(v[a[i]+a[j]]) continue;
            a[crt]=a[i]+a[j]; if(dfs(crt+1)) return true;
        } return false;
    }
    signed main() {
        while(n=g(),n!=0) { dep=1;
            memset(a,0,sizeof(a));memset(v,false,sizeof(v)); a[1]=1;
            while(!dfs(2)) ++dep;
            for(R i=1;i<=dep;++i) printf("%d ",a[i]); putchar('
    ');
        }
    }

    2019.04.26

  • 相关阅读:
    tcp/心跳包
    TCP协议中的三次握手和四次挥手(图解)
    http 中get和post
    xmpp总结
    IOS中http请求使用cookie
    sdwebimage总结
    iOS断言
    Object-C自定义对象NSLog输入信息
    NSTimer你真的会用了吗
    ios中block中的探究
  • 原文地址:https://www.cnblogs.com/Jackpei/p/10772315.html
Copyright © 2011-2022 走看看