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

posts - 33,  comments - 33,  trackbacks - 0

題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=3680
題意:給定兩數(shù)n,m(0< n,m < 10^500),要求用三種操作(-,+,*2)完成從m變換到n
題解:咋眼看還以為是簡單水題,http://poj.org/problem?id=3278 就是這題的原始版,
并且這個題目下面還白紙黑字寫明(0<N,M<10500),匆忙寫個BFS提交,結(jié)果RE,其實題目的數(shù)據(jù)范圍
應(yīng)該是0<N,M<10^500。。。
暴搜行不通,就要有個好點(diǎn)的方法,想了一下想不到,結(jié)果看了個解題報告,才知道怎么解決

如果m > n:只有減操作
如果n > m:可以從后往前推算:
設(shè)f(x,n)表示數(shù)x變換到n需要的步數(shù) f(x,n)
那么如果x為奇數(shù):f(x,n) = f(x/2,n) + 2
如果x為偶數(shù) :f(x,n) = f(x/2,n) + 1
當(dāng)前答案即為 abs(m-x) + f(x,m)
一直計算直到2*x > m 。
只需要計算x和x+1的步數(shù)即可,如何證明?
以下以(x,n,y)表示,其中y = f(x,n)
 分別討論x和x+1的奇偶性,(x/2,n,y1)和((x+k)/2,n,y2)的大小(作差)
結(jié)果發(fā)現(xiàn)當(dāng)k>=2時,y2 > y1。

由于要大數(shù),所以用java比較方便。。。
 

代碼:
import java.io.*;
import java.util.*;
import java.math.*;

public class Main 
{    
    
public static Scanner in = new Scanner(System.in);
    
public static BigInteger Abs(BigInteger num)
    
{
        
return num.abs();
    }

    
public static BigInteger Min(BigInteger num1,BigInteger num2)
    
{
        
return num1.min(num2);
    }

    
public static void main(String[] args) 
    
{
        BigInteger n,m;
        
while(true)
        
{
            n 
= in.nextBigInteger();
            m 
= in.nextBigInteger();
            
if((n.compareTo(BigInteger.ZERO) == 0|| (m.compareTo(BigInteger.ZERO) == 0))
            
{
                
break;
            }

            
else
            
{
                
if(m.compareTo(n) > 0)
                
{
                    System.out.println(m.subtract(n));
                }

                
else
                
{
                    BigInteger x1,x2,y1,y2,x;
                    x 
= n;
                    x1 
= BigInteger.ZERO;
                    x2 
= BigInteger.ONE;
                    BigInteger ans 
= n.subtract(m);
                    
while(x.multiply(BigInteger.valueOf(2)).compareTo(m) > 0)
                    
{
                        
//x為偶數(shù)
                        if(x.mod(BigInteger.valueOf(2)).compareTo(BigInteger.ZERO) == 0)
                        
{
                            y1 
= Min(x1.add(BigInteger.valueOf(1)),x2.add(BigInteger.valueOf(2)));
                            
//x+1為奇數(shù)
                            y2 = Min(x1.add(BigInteger.valueOf(2)),x2.add(BigInteger.valueOf(2)));
                        }

                        
else
                        
{
                            
//x為奇數(shù)
                            y1 = Min(x1.add(BigInteger.valueOf(2)),x2.add(BigInteger.valueOf(2)));
                            
//x+1為偶數(shù)
                            y2 = Min(x1.add(BigInteger.valueOf(2)),x2.add(BigInteger.valueOf(1)));
                        }


                        x 
= x.divide(BigInteger.valueOf(2));
                        x1 
= y1;
                        x2 
= y2;
                        
//x的步數(shù)
                        ans = Min(ans,Abs(x.subtract(m)).add(y1));
                        
//x+1的步數(shù)
                        ans = Min(ans,Abs(x.subtract(m).add(BigInteger.ONE)).add(y2));
                    }


                    System.out.println(ans);
                }

            }

        }

    }

}

posted on 2010-11-10 16:47 bennycen 閱讀(1124) 評論(3)  編輯 收藏 引用 所屬分類: 算法題解
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美日韩一区二区三| 欧美在线在线| 久久精品国产亚洲aⅴ| 99视频日韩| 久久综合免费视频影院| 午夜精品一区二区三区四区| 免费国产一区二区| 免费不卡视频| 国产日韩欧美自拍| 亚洲图片欧美一区| 国产精品99久久久久久白浆小说| 久久人人看视频| 欧美呦呦网站| 国产精品激情电影| 99精品久久久| 日韩视频免费大全中文字幕| 免播放器亚洲一区| 欧美777四色影视在线| 国产永久精品大片wwwapp| 亚洲欧美另类中文字幕| 午夜精品久久久久久久| 国产精品久久久久久模特| 9久草视频在线视频精品| 99在线精品视频在线观看| 久久天堂国产精品| 免费影视亚洲| 亚洲人体大胆视频| 免费在线观看精品| 亚洲电影免费在线观看| 亚洲激情自拍| 欧美国产一区二区在线观看| 亚洲激情视频在线| 亚洲视频免费| 欧美午夜免费电影| 亚洲免费中文字幕| 久久精品国产久精国产爱| 国产亚洲欧洲| 久久婷婷久久一区二区三区| 亚洲国产精品一区二区www在线| 亚洲人成网站在线播| 欧美女主播在线| 亚洲午夜一区| 久久天天综合| 亚洲精选在线观看| 欧美午夜精品| 欧美在线三区| 亚洲国产精品综合| 亚洲字幕一区二区| 狠狠综合久久| 欧美久久久久久蜜桃| 99热精品在线| 久久综合国产精品台湾中文娱乐网| 在线欧美视频| 欧美视频一区二区在线观看| 亚洲性xxxx| 欧美高清视频在线观看| 亚洲综合首页| 一区久久精品| 欧美午夜精品久久久久久孕妇| 欧美在线观看一区二区| 亚洲国产女人aaa毛片在线| 亚洲欧美国产高清| 亚洲欧洲视频在线| 国产欧美日韩精品一区| 欧美jizzhd精品欧美巨大免费| 一区二区三区你懂的| 免费在线成人| 午夜精品国产精品大乳美女| 亚洲国产高清aⅴ视频| 国产精品va在线| 麻豆国产精品一区二区三区| 亚洲欧美日本精品| 亚洲人线精品午夜| 女同性一区二区三区人了人一 | 激情五月***国产精品| 欧美日韩精品在线视频| 久久精品国产99| 在线亚洲一区| 亚洲国语精品自产拍在线观看| 香蕉免费一区二区三区在线观看| 亚洲国产欧美日韩| 国产女主播一区二区三区| 欧美日韩不卡一区| 久久久蜜桃精品| 亚洲午夜在线| 亚洲精品国产日韩| 欧美大片在线观看| 久久精品国产免费| 午夜精品久久久久久久久久久久久| 亚洲激情在线视频| 在线播放国产一区中文字幕剧情欧美 | 亚洲欧美视频一区二区三区| 亚洲精品国产精品乱码不99| 久久综合久久综合久久综合| 亚洲女性裸体视频| 亚洲图片自拍偷拍| 在线视频欧美日韩| 亚洲精品美女在线观看| 一色屋精品亚洲香蕉网站| 国产日韩欧美精品一区| 国产精品日韩一区二区三区| 欧美四级在线| 欧美性淫爽ww久久久久无| 欧美伦理91i| 欧美日本一区二区三区| 欧美经典一区二区| 欧美精品www| 欧美另类一区二区三区| 欧美日本一区| 欧美日韩免费在线| 国产精品成人v| 国产精品亚洲美女av网站| 国产精品丝袜xxxxxxx| 国产精品丝袜91| 国产亚洲一区二区三区| 精品成人国产| 亚洲国产精品一区二区久| 亚洲国产欧美在线人成| 亚洲精品一区二| 一区二区日韩精品| 亚洲免费中文字幕| 久久久久国产精品麻豆ai换脸| 久久久久久9| 亚洲国产成人在线| 亚洲美女在线国产| 亚洲欧美国产精品桃花| 久久激五月天综合精品| 蜜臀va亚洲va欧美va天堂| 欧美人与禽性xxxxx杂性| 国产精品毛片a∨一区二区三区|国 | 91久久线看在观草草青青| 亚洲乱亚洲高清| 亚洲在线不卡| 久久这里有精品视频| 欧美日韩美女在线观看| 国产精品视频自拍| 在线成人免费视频| 一区二区三区免费看| 久久精品99国产精品日本| 欧美成人性网| 在线亚洲一区| 快播亚洲色图| 国产精品入口麻豆原神| 韩国成人精品a∨在线观看| 亚洲日本无吗高清不卡| 欧美亚洲一区三区| 欧美激情精品久久久久久| 一本色道久久综合亚洲精品不| 久久er精品视频| 欧美日韩网站| 激情久久久久| 亚洲欧美清纯在线制服| 欧美成人tv| 亚洲免费网站| 欧美精品一区二区高清在线观看| 国产精品影视天天线| 亚洲三级视频| 久久男女视频| 亚洲视频日本| 欧美黄色免费| 黄色工厂这里只有精品| 亚洲免费影视第一页| 欧美激情影音先锋| 久久久国产精品一区| 国产精品大全| 日韩午夜三级在线| 久久伊人一区二区| 亚洲欧美中文在线视频| 欧美色图麻豆| 99精品欧美一区二区三区| 久久综合精品国产一区二区三区| 亚洲色图在线视频| 欧美日本免费| 亚洲国产日韩在线| 蜜桃av综合| 欧美在线影院| 国产一区二区剧情av在线| 午夜精品久久久久久久| 99香蕉国产精品偷在线观看| 欧美a级片网| 亚洲第一毛片| 另类亚洲自拍| 久久九九精品99国产精品| 国产偷久久久精品专区| 亚洲欧美日韩高清| 中文欧美在线视频| 国产精品mv在线观看| 亚洲一区影音先锋| 一本色道久久综合亚洲二区三区 | 欧美日韩精品一区二区在线播放| 亚洲人体偷拍| 91久久黄色| 欧美激情欧美激情在线五月| 亚洲欧洲在线免费| 亚洲激情六月丁香| 欧美日韩久久| 亚洲一区二区三区激情| 一区二区三区日韩欧美精品| 国产精品久久久久久影院8一贰佰| 亚洲免费视频网站|