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

POJ百練 - 2818:密碼

鏈接:http://poj.grids.cn/practice/2818
這其實就是一個簡單的移位密碼算法題,只是多了個循環而已,密碼學里面也指出過循環運算是沒有效果的,所以題目估計也就考察了這一點,如果沒有找出循環周期,此題會一直超時的...
剛開始,我就直接模擬K次加密,顯然超時了,當時還不信了,以為簡單至此。。。
后面我就開始改進了,剛開始是把周期計算和加密放在一起寫了,樣例也過了,但是還是一直錯...
沒辦法再改,我改成把周期求出來,再對加密次數K取模后,再進行運算...
好吧,還是一樣wa,后面就變成PE了。。。
最后,這個題經過我近2個小時的奮戰,終于過了,一共錯了近10次吧...第一次提交是距現在1個多小時前了...
最后發現錯誤的原因還是換行輸出的地方錯了,題目要求是每一組中間有個空行,我則輸出的是每次計算后有個空行...
實在無語...
思維不嚴謹啊...

代碼:
#include <stdio.h>
#include <string.h>
#define N_MAX 200 + 10
int main()
{
    int nN = 0;
    int nNArr[N_MAX];//密鑰
    int nK = 0;
    char szMsg[N_MAX];
    char szMsgBckup[N_MAX];//字符串備份
    int nCir[N_MAX];//周期
    int nMsgLen = 0;
    int nPos = 0;
    int i, j;
    
    while (scanf("%d", &nN), nN != 0)
    {
        for (i = 1; i <= nN; ++i)
        {
            scanf("%d", &nNArr[i]);
        }
        
        for (i = 1; i <= nN; ++i)//計算周期
        {
            nPos = i;
            for (j = 1; ; ++j)
            {
                nPos = nNArr[nPos];
                if (nPos == i)
                {
                    nCir[i] = j;
                    break;
                }
            }
        }
        
        while (scanf("%d", &nK), nK != 0)
        {
            getchar();//銷掉空格
            gets(szMsg + 1);
            nMsgLen = strlen(szMsg + 1);
            for (i = nMsgLen; i < nN; ++i)
            {
                szMsg[1 + i] = ' ';
            }
            szMsg[1 + nN] = '\0';
            strcpy(szMsgBckup + 1, szMsg + 1);
            
            for (i = 1; i <= nN; ++i)
            {
                nPos = i;
                int nTimes = nK % nCir[i];
                for (j = 1; j <= nTimes; ++j)
                {
                    nPos = nNArr[nPos];
                }
                szMsg[nPos] = szMsgBckup[i];
            }
            
            printf("%s\n", szMsg + 1);
        }
        printf("\n");
    }
    
    return 0;
}

posted @ 2011-11-10 20:56 yx 閱讀(2366) | 評論 (4)編輯 收藏

POJ百練 - 1017:裝箱問題

鏈接:http://poj.grids.cn/practice/1017

說實話
這就是個簡單的裝箱子問題,很容易想清楚裝箱子的過程,而且這個過程是滿足貪心算法的,
所以只需要用代碼模擬整個裝箱子的過程即可,但是這樣真的就足夠了嗎???
我剛開始就是用代碼模擬這個手動過程了,雖然AC了,但是代碼有150行左右,邏輯也顯得過于復雜了,
得不償失。。。整個過程是6*6的一個占一個箱子,5*5的也必須一個占一個箱子,但是需要補11個1*1的,
4*4的也是一個占一個箱子,但是需要補5個2*2的,如果2*2的不足夠,則用1*1的代替,
3*3的4個占一個箱子,但是會有余數,可能余下1,2,3個3*3的箱子,這個時候必須非情況考慮,
1個3*3的需要和5個2*2的,7個1*1的組合,2個3*3的需要和3個2*2的,6個1*1的組合,
3個3*3的需要和1個2*2的,5個1*1的組合,最后考慮9個2*2的裝一個箱子,多余的2*2用1*1的去填充盡量擠滿一個箱子,
最后36個1*1的裝一個箱子,余下的1*1的也必須占一個箱子。。。
這個過程說出來已經非常復雜了,更何況用代碼寫,我費了九牛二虎之力才寫出來,WA了一次才AC了...

代碼:
#include <stdio.h>
int main()
{
    int one, two, three, four, five, six;
    int num = 0;
    
    while (scanf("%d%d%d%d%d%d", &one, &two, &three, &four, &five, &six) == 6)
    {
        if (one == 0 && two == 0 && three == 0 && four == 0 && five == 0 && six == 0)
        {
            break;
        }
        
        num = six;
        num += five;
        if (one > five * 11)
        {
            one -= five * 11;
        }
        else
        {
            one = 0;
        }
        
        num += four;
        if (two > four * 5)
        {
            two -= four * 5;
        }
        else
        {
            if (one > four * 5 * 4 - two * 4)
            {
                one -= four * 5 * 4 - two * 4;
            }
            else
            {
                one = 0;
            }
            two = 0;
        }
        
        num += three / 4;
        three = three % 4;
        if (three == 1)
        {
            if (two > 5)
            {
                two -= 5;
                if (one > 7)
                {
                    one -= 7;
                }
                else
                {
                    one = 0;
                }
            }
            else
            {
                if (one > 27 - two * 4)
                {
                    one -= 27 - two * 4;
                }
                else
                {
                    one = 0;
                }
                two = 0;
            }
            ++num;
        }
        
        if (three == 2)
        {
            if (two > 3)
            {
                two -= 3;
                if (one > 6)
                {
                    one -= 6;
                }
                else
                {
                    one = 0;
                }
            }
            else
            {
                if (one > 18 - two * 4)
                {
                    one -= 18 - two * 4;
                }
                else
                {
                    one = 0;
                }
                two = 0;
            }
            ++num;
        }
        
        if (three == 3)
        {
            if (two > 1)
            {
                two -= 1;
                if (one > 5)
                {
                    one -= 5;
                }
                else
                {
                    one = 0;
                }
            }
            else
            {
                if (one > 9 - two * 4)
                {
                    one -= 9 - two * 4;
                }
                else
                {
                    one = 0;
                }
                two = 0;
            }
            ++num;
        }
        
        num += two / 9;
        two = two % 9;
        if (two)
        {
            if (one > 36 - two * 4)
            {
                one -= 36 - two * 4;
            }
            else
            {
                one = 0;
            }
            ++num;
        }
        
        num += one / 36;
        if (one % 36)
        {
            ++num;
        }
        
        printf("%d\n", num);
    }
    
    return 0;
}


這樣的寫法顯然不好吧。。。首先,余下1,2,3個3*3時候需要填幾個2*2的可以存儲在數組里面,這樣就可以不用寫重復代碼了,
如果再從整體考慮余下多少個格子,就不用用貪心算法模擬裝箱子的過程了。。。
代碼如下:
#include <stdio.h>
int main()
{
    int one, two, three, four, five, six;
    int num = 0;
    int twoPlace[4] = {0, 5, 3, 1};
    int remTwo, remOne;
    
    while (scanf("%d%d%d%d%d%d", &one, &two, &three, &four, &five, &six) == 6)
    {
        if (one == 0 && two == 0 && three == 0 && four == 0 && five == 0 && six == 0)
        {
            break;
        }
        
        num = six + five + four + (three + 3) / 4;
        remTwo = four * 5 + twoPlace[three % 4];
        if (two > remTwo)
        {
            num += (two - remTwo + 8) / 9;
        }
        
        remOne = 36 * num - 36 * six - 25 * five - 16 * four - 9 * three - 4 * two;
        if (one > remOne)
        {
            num += (one - remOne + 35) / 36;
        }
        
        printf("%d\n", num);
    }
    
    return 0;
}

posted @ 2011-11-08 20:15 yx 閱讀(1958) | 評論 (0)編輯 收藏

POJ百練 - 2808:校門外的樹

    鏈接:http://poj.grids.cn/practice/2808

    方法1(空間換時間):
    #include <stdio.h>
    int main()
    {
        int L, M;
        int nTrees[10005] = {0};
        int start, end;
        int nCount = 0;
        
        scanf("%d%d", &L, &M);
        while (M--)
        {
            scanf("%d%d", &start, &end);
            for (int i = start; i <= end; ++i)
            {
                nTrees[i] = 1;
            }
        }
        
        for (int i = 0; i <= L; ++i)
        {
            if (nTrees[i] == 0)
            {
                nCount++;
            }
        }
        
        printf("%d\n", nCount);
        return 0;
    }
    方法2(合并區間):
    思想是將所有區間存儲在數組里面,對所有區間以下限為標準排序,然后從頭至尾掃描區間數組,
    合并區間的方法是:當前區間初始化為第一個區間,然后判斷下一個區間的下限是否已經超過當前區間的上限,如果是這樣的話,就無法繼續合并了,那么就繼續已經合并區間的長度,重新開始一次新的合并,否則的話,將下一個區間合并到當前區間起來。。。
    #include <stdio.h>
    #include <stdlib.h>
    #define M_MAX 100 + 2
    struct Area{
        int start;
        int end;
    };
    int CompareArea(const void *elem1, const void *elem2)
    {
        return ((Area*)elem1)->start - ((Area*)elem2)->start;
    }
    int main()
    {
        Area area[M_MAX], temp;
        int L = 0;
        int M = 0;
        int count = 0;
        scanf("%d%d", &L, &M);
        for (int i = 0; i < M; ++i)
        {
            scanf("%d%d", &area[i].start, &area[i].end);
        }
        qsort(area, M, sizeof(Area), CompareArea);
        
        temp = area[0];
        for (int i = 1; i < M; ++i)
        {
            if (area[i].start <= temp.end)
            {
                if (area[i].end > temp.end)
                {
                    temp.end = area[i].end;
                }
            }
            else
            {
                count += temp.end - temp.start + 1;
                temp = area[i];
            }
        }
        count += temp.end - temp.start + 1;
        
        printf("%d\n", L + 1 - count);
        
        return 0;
    }
    整個算法的時間復雜度是 O(M * logM) + O(M)...

posted @ 2011-11-07 13:27 yx 閱讀(677) | 評論 (0)編輯 收藏

New Begin

   這個blog的申請時間估計已經有1個多星期了。。。那是在我最無聊的時刻吧。。。從前天起的前面6天外出旅行了,用的是生物能,用我們自己的雙腳踩車去了新寧崀山。從長沙到哪里也有300多公里。想起這6天的種種,收獲頗豐。我也不是來寫這篇游記的,所以這次旅行也不想說得過多了。
   我以后會很少在 qzone 和 人人 以及 百度空間 上更新任何文章了。不管是發牢騷還是記錄些學習感悟,都不會寫在那上面了。如果有熟人有心看到過我這個blog的話,就不必要去看其它地方的了,那里只有我以前的胡亂感受。
   一恍大學過了3年多了,大四了,保研也確定了3個多星期了。前2個星期,則完全是在宿舍宅了半個月。第三個星期,鼓起勇氣出去旅行。說實話,一直到那天早上我都猶豫要不要去的了。后面的3天,基本上每天都有12小時在路上奔走。第一天非常難受,剛過猴子石大橋就感覺受不了了,還好出城的時候走的慢,一直跟在李后面。。。出城后,到暮云,到湘潭,那個上午就感覺用夠了全部力量了。下午開走前,真的懷疑過接下來該怎么辦。。。在路上的那種難受感覺說也說不出來,其實我身體很虛的那種。在宿舍宅了3年多,生活沒有規律,飲食也不夠。第一天真的非常難受。走不動的時候,我老是想一些這幾年讓我痛不欲生的事情,我永遠也無法改變無法解決,但是又最后會把錯誤歸咎到自己身上的事情。真的痛不欲生。。。也許,這就是生命。生命就是一場旅行,雖然很痛,但是沿途還有風景,這種旅行本身就具備了最大的意義。
   真的是萬事開頭難,第二天就沒有那么強烈的感覺了。雖然,還是沒有力氣,還是很難受,但是還是稍微適應了點了。堅持才是勝利,這句話在這個時候很對。第三天,我完全感覺跟前面2天不同了,這一天我能夠騎到前面去了,雖然這一天的路最爛,最陡。。。不要以為成功就是那么容易,即使經過3天的艱苦車行。我們還是沒有到達目的地,我們只是到了新寧的一個鎮,離縣城還是有50多公里,這邊路這么爛,基本上在修的爛國道,而且還帶盤山的那種。第四天,只能做中吧去了,坐車時候受到了鄙視比騎車時更多,車放在里面而不是后備箱確實礙著太多人了,農村里面的車也擠成那樣了,我也一直不會說什么好話。。。第四天,我們終于出了縣城到了景區。到景區大門的時候,就開始虛脫了,不是因為長途跋涉,而是因為腸胃不好,發作了,拉了個肚子之后整個人就虛脫了。唉,確實不是這么容易啊。。。
   第四天我們看了一個景區,第五天看了二個更爽的景區,每天基本也是活動12小時以上。感謝住的地方那么干凈,老板娘做的菜也那么好吃。如果再去一定會住那里,也會向別人推薦那里。那個家庭賓館我們還拍了照。一路所有的照片都在qq空間里面了。。。
   

   說了不寫游記的,我還是寫了這么多的。。。這篇游記如果真的認真寫實在太長了,一路也沒有記日記。這5天多的感受,比我大學里面任何時間的感覺受激烈很多。我收獲了很多很多。本來就打算以此作為開始,重開我的人生的。這輩子做過太多不堪的事情了,是時候為了自己,不受任何世俗觀念影響做點事情了。。。
   

posted @ 2011-11-07 09:38 yx 閱讀(391) | 評論 (2)編輯 收藏

僅列出標題
共10頁: First 2 3 4 5 6 7 8 9 10 
<2025年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

導航

統計

公告

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

me

好友

同學

網友

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            一区二区精品在线观看| 久久精品国产亚洲一区二区| 亚洲桃花岛网站| 亚洲欧洲一区二区三区久久| 亚洲激情电影中文字幕| 亚洲精品视频二区| 亚洲丝袜av一区| 欧美在线1区| 久久精品国产亚洲aⅴ| 麻豆精品视频在线| 亚洲国产毛片完整版| 欧美成年视频| 日韩视频在线免费| av不卡在线| 亚洲午夜久久久久久久久电影网| 午夜激情久久久| 蜜桃av噜噜一区二区三区| 欧美国产91| 亚洲桃花岛网站| 久久亚洲私人国产精品va| 欧美日韩在线精品| 伊人精品视频| 亚洲欧美久久久| 美女脱光内衣内裤视频久久网站| 亚洲精品小视频| 久久精品在线免费观看| 欧美人与禽猛交乱配| 国产欧美日韩高清| 99av国产精品欲麻豆| 久久久亚洲人| 一本一本久久| 免费成人网www| 韩国av一区二区三区在线观看| 一区二区三区产品免费精品久久75 | 美女亚洲精品| 亚洲视频欧美在线| 欧美高清视频在线播放| 国产午夜久久| 亚洲一区免费视频| 亚洲欧洲另类国产综合| 久久精品女人天堂| 国产精品推荐精品| 一区二区三区欧美成人| 欧美二区在线看| 久久精品免视看| 国产亚洲aⅴaaaaaa毛片| 一区二区三区日韩欧美精品| 欧美高清在线播放| 久久久久久夜| 韩国女主播一区| 久久精品视频免费播放| 亚洲一区在线观看视频 | 国产一区二区三区在线播放免费观看| 亚洲色图综合久久| 日韩午夜在线视频| 欧美日韩中文| 亚洲女与黑人做爰| 亚洲视频二区| 国产精品一区一区三区| 午夜视频在线观看一区二区三区| 99精品热视频只有精品10| 欧美激情视频在线播放| 欧美精品色一区二区三区| 亚洲国产精品免费| 亚洲国产毛片完整版| 欧美精品一区视频| 一区二区国产日产| 在线中文字幕日韩| 国产精品久久久久久av下载红粉 | 久久久久亚洲综合| 一区在线观看| 亚洲国产高清一区| 欧美日韩一区二区视频在线| 正在播放亚洲| 亚洲综合色丁香婷婷六月图片| 国产乱理伦片在线观看夜一区| 欧美一区二区三区视频在线 | 国产在线视频欧美一区二区三区| 欧美在线一区二区| 久久嫩草精品久久久精品一| 在线观看日韩一区| 亚洲激情网址| 国产精品美女久久久久久免费 | 亚洲美女中文字幕| 一区二区三区www| 国产一区二区三区久久悠悠色av| 女人色偷偷aa久久天堂| 欧美黄色免费网站| 亚欧成人在线| 欧美1区视频| 午夜日韩在线观看| 理论片一区二区在线| 亚洲视频一起| 久久免费的精品国产v∧| 一区二区高清视频| 欧美在线播放一区| 一本一本a久久| 欧美一区二区啪啪| 一本色道久久88精品综合| 亚洲欧美日韩视频一区| 亚洲高清免费在线| 亚洲女性裸体视频| 99av国产精品欲麻豆| 欧美在线亚洲一区| 一区二区三区精品国产| 久久精品国产99精品国产亚洲性色| 亚洲裸体视频| 久久久精品动漫| 亚洲欧美日韩精品一区二区 | 午夜影院日韩| 欧美激情视频在线播放| 久久免费精品日本久久中文字幕| 欧美激情1区2区3区| 久久精品动漫| 欧美偷拍另类| 欧美尤物巨大精品爽| 久久精品国产精品| 在线视频你懂得一区二区三区| 欧美一区亚洲一区| 性欧美1819sex性高清| 欧美日韩三级| 亚洲精品一区二区在线观看| 亚洲高清av在线| 久久久国产成人精品| 欧美一区激情视频在线观看| 欧美视频日韩视频| 亚洲毛片在线看| 9i看片成人免费高清| 猫咪成人在线观看| 欧美.com| 亚洲国产成人精品女人久久久 | 亚洲欧美国产视频| 欧美日韩影院| 洋洋av久久久久久久一区| 亚洲免费成人| 欧美久久在线| 一区二区成人精品| 亚洲欧美视频在线观看| 国产精品视频一区二区高潮| 中文一区在线| 亚洲欧美日韩精品在线| 国产精品va在线播放我和闺蜜| 日韩午夜在线观看视频| 亚洲无毛电影| 国产视频精品网| 久久久久久久久一区二区| 欧美寡妇偷汉性猛交| 亚洲久久一区二区| 欧美日韩久久| 9国产精品视频| 欧美亚洲日本网站| 国产欧美va欧美不卡在线| 午夜精品999| 免费在线成人av| 亚洲精品久久在线| 欧美日韩色综合| 午夜在线视频观看日韩17c| 久久久久久有精品国产| 亚洲成色777777女色窝| 欧美激情导航| 午夜电影亚洲| 亚洲第一精品福利| 中文精品一区二区三区| 国产精品视频999| 久久视频在线视频| 亚洲欧洲一区| 久久久久国产精品厨房| 亚洲激情中文1区| 国产精品高清在线| 久久精品在线| 亚洲人成在线观看一区二区| 一区二区高清在线| 一本久道久久综合中文字幕| 农村妇女精品| 亚洲精品乱码久久久久久日本蜜臀| 亚洲国产成人高清精品| 欧美午夜电影在线观看| 久久精品夜色噜噜亚洲a∨| 亚洲国产精品成人久久综合一区| 99国产精品私拍| 精品成人一区二区| 国产精品高潮粉嫩av| 久久综合狠狠综合久久综青草 | 亚洲电影成人| 亚洲一二三区精品| 国产一区在线播放| 欧美日韩精品免费观看| 久久国产一区二区| 亚洲视频观看| 亚洲精品麻豆| 欧美成人免费小视频| 欧美一级视频免费在线观看| 亚洲日本欧美天堂| 永久555www成人免费| 国产精品一区久久久久| 欧美日韩国产系列| 能在线观看的日韩av| 久久久久久电影| 欧美影院在线| 性做久久久久久久久|