青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

心如止水
Je n'ai pas le temps
posts - 400,comments - 130,trackbacks - 0

給出一個(gè)分?jǐn)?shù),比如19/45,把它寫成若干個(gè)形如1/Ri的分?jǐn)?shù)的和的形式,比如19/45=1/5+1/6+1/18,要求分母不能重復(fù)使用并且使用的分?jǐn)?shù)的個(gè)數(shù)最少。(如果有多組個(gè)數(shù)相同的解,最后的分?jǐn)?shù)的分母越小越好,這對于題目來說是次要的。)
1、分母從小到大搜索
為了避免重復(fù)搜索
2、使用迭代加深搜索
求“步驟數(shù)最少”這類問題,基本上有兩種似乎:廣搜、迭代加深搜索。對于這道題來說,如果廣搜將永遠(yuǎn)得不到結(jié)果,分母可以無限大!但是迭代加深搜索就比較好,雖然做了許多重復(fù)工作,但狀態(tài)空間至少被限制住了。如果當(dāng)前正在枚舉的分母,使得接下來的選擇即使每次都選擇最大,達(dá)到最大深度的時(shí)候也不可能達(dá)到目標(biāo)分?jǐn)?shù),那么當(dāng)前正在枚舉的分母及比它還大的分母,都不需要枚舉了。這樣可以給分母確定一個(gè)上界。另外,已經(jīng)得到的結(jié)果加上當(dāng)前枚舉的分母對應(yīng)的分?jǐn)?shù),要小于等于目標(biāo)分?jǐn)?shù),這樣給分母確定了一個(gè)下界(可以在O(1)的復(fù)雜度內(nèi)確定這個(gè)下界)。

在下面的代碼中,因?yàn)榇_定上下界都使用了浮點(diǎn)運(yùn)算,最終還是需要把當(dāng)前結(jié)果和目標(biāo)結(jié)果比較。
浮點(diǎn)運(yùn)算~真讓人糾結(jié)的東西!

以下是我的代碼:
#include<algorithm>
#include
<cstdio>
#include
<cmath>
using namespace std;

int gcd(int a,int b)
{
    
for(int t=a%b;t;a=b,b=t,t=a%b); return b;
}
struct Type
{
    Type():a_(
0),b_(1) {}
    Type(
int a,int b):a_(a),b_(b) {}

    
int a_,b_;
};
Type 
operator+(const Type &a,const Type &b)
{
    Type re(a.a_
*b.b_+a.b_*b.a_,a.b_*b.b_);
    
int t(gcd(re.a_,re.b_));
    re.a_
/=t;
    re.b_
/=t;
    
return re;
}
bool operator==(const Type &a,const Type &b)
{
    
return (a.a_*b.b_==b.a_*a.b_);
}

Type target;
int ans,r[10000],t[10000];
bool found;

void dfs(const int &depth,const int &last,const Type &now)
{
    
if(depth>ans)
    {
        
if(now==target)
        {
            
if(found)
            {
                
bool cover(false);
                
for(int i=ans;i>=1;i--)
                    
if(r[i]>t[i])
                    {
                        cover
=true;
                        
break;
                    }
                    
else if(r[i]<t[i])
                        
break;
                
if(cover)
                    
for(int i=1;i<=ans;i++)
                        r[i]
=t[i];
            }
            
else
            {
                
for(int i=1;i<=ans;i++)
                    r[i]
=t[i];
                found
=true;
            }
        }
        
return;
    }
    
for(int i=max(last+1,(int)ceil((double)(target.b_*now.b_)/(target.a_*now.b_-target.b_*now.a_))); ;i++)
    {
        Type news(now
+Type(1,i));
        
if(depth+(int)ceil((double)(target.a_*news.b_-target.b_*news.a_)*(i+1)/(target.b_*news.b_))>ans)
            
break;
        t[depth]
=i;
        dfs(depth
+1,i,news);
    }
}

int main()
{
    freopen(
"data.in","r",stdin);
    freopen(
"data.out","w",stdout);

    
while(scanf("%d%d",&target.a_,&target.b_)==2)
    {
        found
=false;
        
for(ans=1; ;ans++)
        {
            dfs(
1,0,Type());
            
if(found)
                
break;
        }

        
for(int i=1;i<=ans;i++)
        {
            
if(i!=1)
                printf(
" ");
            printf(
"%d",r[i]);
        }
        printf(
"\n");
    }

    
return 0;
}
posted on 2011-05-09 22:59 lee1r 閱讀(2447) 評論(1)  編輯 收藏 引用 所屬分類: 題目分類:搜索

FeedBack:
# re: 經(jīng)典迭代加深搜索——埃及分?jǐn)?shù)
2014-06-09 17:57 | lyd
剛剛看了看你的這個(gè)問題的代碼,發(fā)現(xiàn)有個(gè)問題,但是在我的代碼中也有相同的問題,無法解決希望我們可以探討一下,有興趣可以訪問我的網(wǎng)易博客:http://lydws.blog.163.com/。就是有一組數(shù)據(jù):3 997;這組數(shù)據(jù)我們的答案都是:354 5982 58823;我對比了很多人的代碼,也都是這個(gè)問題,正確答案其實(shí)不是這個(gè),不過我這里沒有那個(gè)正確答案,我先找找看有沒有,如果不麻煩的話你可以看一看,謝謝。  回復(fù)  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品少妇30p| 久久九九免费视频| 久久国产福利| 中文av一区特黄| 一本色道久久加勒比88综合| 一本高清dvd不卡在线观看| 在线一区二区三区四区| 亚洲在线观看视频| 久久久久久国产精品一区| 久久香蕉国产线看观看网| 亚洲大片一区二区三区| 亚洲国产精品成人| 一本一本a久久| 亚洲欧美一区二区原创| 久久免费视频网| 欧美日韩黄色一区二区| 国产日韩欧美日韩| 亚洲国语精品自产拍在线观看| 亚洲精品在线三区| 久久九九99| 欧美一区二区视频97| 老司机67194精品线观看| 亚洲国产精品传媒在线观看 | 老牛嫩草一区二区三区日本 | 香蕉亚洲视频| 麻豆成人91精品二区三区| 欧美精品日韩综合在线| 国产精品另类一区| 亚洲国产日韩综合一区| 日韩午夜剧场| 久久久国产91| 亚洲国产美女精品久久久久∴| 亚洲图片欧美一区| 欧美电影在线观看| 国产精品v日韩精品| 国产欧美日韩视频一区二区| 91久久精品国产91久久性色tv| 亚洲午夜精品国产| 欧美xxx成人| 先锋影音久久久| 欧美日韩日日夜夜| 91久久久久久久久| 久久久久久夜精品精品免费| 夜夜嗨av一区二区三区| 久久久久国产精品人| 欧美日韩成人在线| 亚洲欧洲日夜超级视频| 久久视频精品在线| 亚洲视频免费看| 欧美福利一区| 亚洲高清在线播放| 玖玖精品视频| 欧美一区久久| 国产日韩精品一区| 小黄鸭精品aⅴ导航网站入口 | 欧美在线观看一二区| 国产乱码精品一区二区三区五月婷| 日韩亚洲欧美综合| 欧美刺激午夜性久久久久久久| 欧美在线地址| 国模叶桐国产精品一区| 久久精品国产免费观看| 亚洲欧美影院| 国产日韩欧美日韩大片| 久久久精品999| 欧美一区二区三区精品| 国产原创一区二区| 嫩草伊人久久精品少妇av杨幂| 久久精品视频在线| 亚洲福利在线看| 亚洲国产精品久久| 欧美精品亚洲一区二区在线播放| 亚洲精品一二三区| 亚洲精品男同| 久久精品在这里| 亚洲欧洲一区二区三区在线观看 | 国产精品久久久久久户外露出 | 亚洲精品日韩在线| 欧美日韩免费观看一区=区三区 | 亚洲一区二区三区涩| 日韩亚洲欧美一区| 国产精品久久福利| 久久久久免费视频| 女主播福利一区| 一区二区三区四区精品| 一区二区欧美日韩| 国产午夜精品视频| 美女精品国产| 欧美日韩美女在线| 久久久久综合| 欧美激情一区在线| 欧美在线影院| 麻豆成人av| 午夜精品久久久久久久99热浪潮| 欧美主播一区二区三区| 亚洲精品国产精品国自产观看浪潮 | 国产综合亚洲精品一区二| 久久综合色8888| 欧美日韩精品免费观看视频| 性18欧美另类| 美女网站在线免费欧美精品| 午夜欧美精品久久久久久久| 久久噜噜亚洲综合| 亚洲一区999| 久久久久久久欧美精品| 亚洲午夜羞羞片| 亚洲欧美在线高清| 久久这里有精品视频| 亚洲欧美日韩一区二区三区在线观看| 欧美怡红院视频| 亚洲一卡二卡三卡四卡五卡| 久久香蕉国产线看观看网| 亚洲制服欧美中文字幕中文字幕| 久久久久久亚洲综合影院红桃| 亚洲图片欧美午夜| 欧美成人免费大片| 玖玖综合伊人| 国产偷久久久精品专区| 日韩一区二区精品视频| 91久久精品国产91久久| 久久久久成人精品| 久久精品国产99国产精品| 国产精品成人免费| 99re6热在线精品视频播放速度| 亚洲激情另类| 久久蜜桃资源一区二区老牛| 久久99在线观看| 国产精品萝li| 欧美日韩国产电影| 99国内精品| 亚洲国产成人在线| 久久久久久69| 久久久久久婷| 国产视频在线观看一区| 亚洲一区综合| 亚洲一区二区欧美| 国产精品久久久久久久久久妞妞| 亚洲精品欧美专区| 在线亚洲精品| 欧美婷婷六月丁香综合色| 亚洲精品字幕| 亚洲一二三四区| 国产精品啊啊啊| 亚洲一区不卡| 欧美一区二区三区日韩视频| 国产精品区二区三区日本| 亚洲一级高清| 久久久久久久久一区二区| 国产午夜精品视频| 久久精品日韩| 欧美成人在线影院| 99精品视频免费全部在线| 欧美三区视频| 亚洲性感激情| 久久五月天婷婷| 亚洲日本无吗高清不卡| 欧美激情一区二区三区在线| 亚洲每日更新| 亚洲欧美一区二区在线观看| 国产农村妇女精品| 久久精品中文| 最新精品在线| 亚洲欧美日韩另类| 狠狠久久婷婷| 欧美1区视频| 一本色道久久加勒比精品| 欧美激情精品久久久久| 99精品视频一区二区三区| 香蕉尹人综合在线观看| 一区二区视频免费在线观看| 欧美精品一区二区高清在线观看| 亚洲一级免费视频| 欧美成人免费视频| 亚洲一区日韩在线| 精品动漫3d一区二区三区| 欧美日韩亚洲一区二区三区在线| 欧美一二三视频| 亚洲人成网站在线播| 久久国产精品久久w女人spa| 亚洲人在线视频| 国产日本欧美一区二区| 欧美国产日韩一区二区三区| 亚洲一区久久久| 亚洲国产精品国自产拍av秋霞| 午夜一区不卡| 99国产精品久久久久老师 | 亚洲国产精品日韩| 国产麻豆视频精品| 欧美乱大交xxxxx| 欧美一区永久视频免费观看| 亚洲精品一二三区| 欧美成人有码| 久久一区中文字幕| 性做久久久久久久久| 99视频精品在线| 91久久精品国产91久久性色tv | 欧美亚洲综合在线| 99国产精品99久久久久久| 久久一区二区三区超碰国产精品| av成人动漫|