• <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>

            uva 107 - The Cat in the Hat

               這是一個(gè)很神的數(shù)學(xué)題吧?;旧线^這個(gè)題的很多都會(huì)wa10多次,而且這個(gè)題好像簡(jiǎn)單的枚舉其中的一個(gè)指數(shù)值都能過,可能是
            數(shù)據(jù)量比較小。
               但是,這個(gè)題還是有數(shù)學(xué)的解法的。但是,即使找到了這個(gè)正確的解法,過題的話,也是一件很困難的事情。題意大致如下:一只貓,
            高度為H,戴了一個(gè)帽子,帽子里面有N只貓(N是常數(shù),且未知),同樣帽子里面的貓也戴了帽子,但是這些貓的高度變成了H / (N + 1),
            會(huì)向下取整。以此遞歸下去,直到最后的貓的高度都為1為止。現(xiàn)在,給出H和高度為1的貓的數(shù)量。要求的是高度大于1的貓的數(shù)量,
            以及所有貓的高度之和。
               很別扭吧。通過上面的信息,得出2個(gè)式子。假設(shè)one代表為高度為1的貓的數(shù)量。one = N的n次。H >= (N + 1)的n次。注意第
            二個(gè)式子不一定取等號(hào),因?yàn)楹芏鄷r(shí)候都是不能整除的。現(xiàn)在要求N和n。2個(gè)方程解2個(gè)未知數(shù),應(yīng)該能解出來。但是,注意的是其中
            一個(gè)還是不等式。。。
               指數(shù)關(guān)系很多時(shí)候會(huì)轉(zhuǎn)換為對(duì)數(shù)的關(guān)系。所以,繼續(xù)求對(duì)數(shù),有l(wèi)gH >= n * lg(N + 1)。其中,由第一個(gè)式子可以得到n = lg(one)
            / lg(N)。那么最終轉(zhuǎn)換為:lgH >= (lg(one) / lgN) * lg(N + 1)。換個(gè)形式就是lgH / lg(One) >= lg(N + 1) / lgN?,F(xiàn)在,已經(jīng)很
            清晰了。因?yàn)?,函?shù)lg(N + 1) / lg(N) 是單調(diào)遞減的??吹絾握{(diào)的函數(shù),馬上就會(huì)知道可以二分了。意思是,我們可以二分出一個(gè)N讓
             lg(N + 1) / lgN 最接近lgH / lg(One),而且是小于lgH / lg(One)的。剩下的工作就只是求和而已了。
               寫二分的時(shí)候,有一個(gè)地方可以注意一下。因?yàn)?nbsp;lg(N + 1) / lgN 可能會(huì)出現(xiàn)除數(shù)為0的情況,所以可以進(jìn)一步轉(zhuǎn)換為lgH * lgN >=
            lg(N + 1) * lg(one)
            。 也是求一個(gè)N讓上面那個(gè)不等式2邊的值最接近,而且右邊小于左邊。
               能很快寫對(duì)這個(gè)題真不是件容易的事情。。。

               代碼如下:
            #include <stdio.h>
            #include <math.h>

            int main()
            {
                int nInitH, nOnes;
                int nN, n;

                while (scanf("%d%d", &nInitH, &nOnes), nInitH + nOnes)
                {
                    int nBeg = 1;
                    int nEnd = nOnes;
                    int nMid;
                
                    while (nBeg <= nEnd)
                    {
                        nMid = (nBeg + nEnd) / 2;
                        
                        double fRes = log10(nInitH) * log10(nMid);
                        double fTemp = log10(nMid + 1) * log10(nOnes);
                        if (fabs(fRes - fTemp) < 1e-10)
                        {
                            //printf("Find nN:%d\n", nMid);
                            nN = nMid;
                            break;
                        }
                        else if (fTemp > fRes)
                        {
                            nBeg = nMid + 1;
                        }
                        else
                        {
                            nEnd = nMid - 1;
                        }
                    }
                    
                    n = floor(log10(nInitH) / log10(nN + 1) + 1e-9);
                    //printf("nN:%d, n:%d\n", nN, n);

                    int nSum = 0;
                    int nLazy = 0;
                    int nNum = 1;
                    for (int i = 0; i <= n; ++i)
                    {
                        nSum += nNum * nInitH;
                        nLazy += nNum;
                        nNum *= nN;
                        nInitH /= (nN + 1);
                    }
                    
                    printf("%d %d\n", nLazy - nOnes, nSum);
                }

                return 0;
            }

               

            posted on 2012-05-07 16:54 yx 閱讀(1703) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 數(shù)學(xué)題

            <2012年5月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導(dǎo)航

            統(tǒng)計(jì)

            公告

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            me

            好友

            同學(xué)

            網(wǎng)友

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            少妇被又大又粗又爽毛片久久黑人| 欧美久久综合九色综合| 97久久精品国产精品青草| 久久免费小视频| 国产日韩久久久精品影院首页| 久久久久久久91精品免费观看| 久久综合狠狠综合久久综合88| 色综合久久天天综合| 国产69精品久久久久久人妻精品| 99久久99久久久精品齐齐 | 中文精品久久久久人妻不卡| 亚洲国产精品热久久| 亚洲愉拍99热成人精品热久久 | 日产精品久久久一区二区| 天天久久狠狠色综合| 中文字幕无码免费久久| 久久久WWW免费人成精品| 精品久久久久久国产潘金莲| 中文字幕精品久久| 久久久久国色AV免费看图片| 国产成人无码精品久久久久免费 | 久久婷婷五月综合色奶水99啪| 久久这里都是精品| 日韩欧美亚洲综合久久影院Ds| 午夜不卡888久久| 精品永久久福利一区二区 | 国产精品伊人久久伊人电影| 97久久精品无码一区二区| 中文字幕无码精品亚洲资源网久久| 2019久久久高清456| 久久久综合香蕉尹人综合网| 狠狠人妻久久久久久综合| 国产A级毛片久久久精品毛片| 99久久综合狠狠综合久久| 色综合久久最新中文字幕| 国产69精品久久久久99| 精品久久久久久无码人妻热 | 日韩美女18网站久久精品| 中文字幕久久亚洲一区| 久久受www免费人成_看片中文 | 国产精品日韩深夜福利久久|