码迷,mamicode.com
首页 > 其他好文 > 详细

【UVa】1374 Power Calculus(IDA*)

时间:2017-12-26 19:06:47      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:cst   log   tar   names   scan   href   body   markdown   mes   

题目

题目
?


?

分析

IDA*大法好,抄了lrj代码。
?


?

代码

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

const int maxans=14;

int n,a[maxans+1];

bool dfs(int d,int maxd)
{
    if(a[d] == n) return true;
    if(d == maxd) return false;
    
    int maxv=a[0];
    for(int i=1; i<=d; i++) maxv=max(maxv, a[i]);
    if( (maxv << (maxd-d)) < n) return false;
    
    for(int i=d; i>=0; i--)
    {
        a[d+1]=a[d]+a[i];
        if(dfs(d+1 , maxd)) return true;
        a[d+1] = a[d] - a[i];
        if(dfs(d+1 , maxd)) return true;
    }
    return false;
}

int solve(int n)
{
    if(n==1) return 0;
    a[0]=1;
    for(int maxd=1; maxd < maxans; maxd++)
        if(dfs(0,maxd)) return maxd;
    return maxans;
}

int main()
{
    while( scanf("%d",&n)==1 && n!=0)
        printf("%d\n",solve(n));
    return 0;
}

【UVa】1374 Power Calculus(IDA*)

标签:cst   log   tar   names   scan   href   body   markdown   mes   

原文地址:https://www.cnblogs.com/noblex/p/8119357.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!