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

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>
            国产精品综合| 久久激情一区| 欧美激情视频给我| 亚洲国产欧美日韩| 久久久91精品国产一区二区精品| 香蕉久久精品日日躁夜夜躁| 国产女主播一区二区三区| 亚洲在线视频免费观看| 欧美一区影院| 亚洲黑丝在线| 欧美天天在线| 久久国产色av| 免费欧美在线视频| 亚洲欧美制服中文字幕| 亚洲承认在线| 欧美一区二区三区久久精品| 欧美一区二区在线| 老色鬼精品视频在线观看播放| 亚洲日韩第九十九页| 国产精品女人网站| 欧美电影在线观看完整版| 欧美一区二区三区四区在线| 亚洲国产影院| 一区二区成人精品| 亚洲国产三级| 亚洲欧美国产精品桃花| 一本色道久久综合亚洲精品高清 | 免费日韩成人| 一区二区三区欧美在线观看| 在线免费观看欧美| 国产欧美一区二区三区在线看蜜臀| 黄色在线成人| 午夜视频一区在线观看| 欧美在线亚洲综合一区| 欧美.日韩.国产.一区.二区| 性做久久久久久| 欧美国产日本高清在线| 久久婷婷国产综合尤物精品| 亚洲综合第一| 日韩视频一区二区三区在线播放免费观看 | 夜夜爽av福利精品导航| 亚洲国产欧美一区| 亚洲欧美激情精品一区二区| 欧美激情综合五月色丁香| 黑人极品videos精品欧美裸| 国模大胆一区二区三区| 国产色视频一区| 激情五月综合色婷婷一区二区| 一本色道久久综合| 亚洲小说欧美另类婷婷| 亚洲亚洲精品三区日韩精品在线视频| 久久久久久久综合狠狠综合| 亚洲高清视频一区二区| 一区二区在线看| 久久超碰97中文字幕| 久久综合久久综合久久| 亚洲一区二区三区在线观看视频| 欧美日韩hd| 国产精品久久久久aaaa九色| 国产精品欧美日韩一区二区| 国内成+人亚洲| 久久精品国产一区二区电影| 欧美88av| 久久麻豆一区二区| 久久精品亚洲精品| 韩国av一区二区三区在线观看| 午夜亚洲视频| 午夜精品久久久99热福利| 国产欧美日韩亚洲一区二区三区| 亚洲影院色在线观看免费| 一区二区三区四区精品| 国产精品毛片在线| 欧美一级久久| 久久精品道一区二区三区| 好吊色欧美一区二区三区四区| 久久久久国产精品一区三寸 | 欧美日韩国产综合视频在线| 亚洲人精品午夜| 亚洲欧美另类在线观看| 欧美高清在线视频观看不卡| 一本一本久久a久久精品综合麻豆| 欧美 日韩 国产在线| 亚洲精品偷拍| 99精品国产高清一区二区| 国产精品豆花视频| 欧美中在线观看| 欧美 日韩 国产一区二区在线视频| 亚洲精品一区二区三区蜜桃久| 99国产精品一区| 国产欧美日韩不卡| 欧美黄污视频| 国产欧美日韩另类视频免费观看| 男同欧美伦乱| 国产精品电影在线观看| 老司机精品导航| 欧美日韩和欧美的一区二区| 久久国产免费| 欧美日韩精品二区| 久久网站免费| 欧美日韩在线视频首页| 久久久久久一区二区三区| 欧美丰满高潮xxxx喷水动漫| 国产一区二区电影在线观看| 亚洲免费影视| 久久综合色播五月| 国产午夜精品美女视频明星a级 | 一区二区欧美在线| 亚洲深夜福利在线| 欧美日韩国产区| 久久精品国产视频| 欧美日韩精品欧美日韩精品一 | 日韩视频免费大全中文字幕| 久久综合九九| 亚洲欧美国产视频| 欧美bbbxxxxx| 久久一区二区三区四区五区| 国产精品久久久亚洲一区| 亚洲第一精品电影| 久久久久久久久伊人| 亚洲欧美成人一区二区三区| 欧美成黄导航| 欧美mv日韩mv国产网站| 国产婷婷一区二区| 亚洲一区二区四区| 亚洲综合国产精品| 欧美性开放视频| 欧美一区二区在线视频| 欧美日韩亚洲综合一区| 香蕉久久夜色精品国产| 欧美欧美在线| 亚洲性xxxx| 欧美日韩午夜视频在线观看| 亚洲韩国精品一区| 亚洲精品午夜| 欧美激情视频网站| 亚洲黄色小视频| 国产精品丝袜xxxxxxx| 99精品99久久久久久宅男| 一本久久综合| 欧美午夜片在线免费观看| 日韩一区二区精品在线观看| 欧美体内she精视频在线观看| 亚洲另类视频| 欧美激情一区二区久久久| 欧美激情小视频| 亚洲精选在线观看| 欧美日韩mv| av72成人在线| 欧美一级电影久久| 狠狠色狠狠色综合日日五| 久久久久国产精品厨房| 美女黄网久久| 日韩视频在线免费观看| 亚洲欧美日本国产有色| 亚洲男女自偷自拍| 国产日韩亚洲| 玖玖精品视频| 日韩午夜中文字幕| 欧美一区二区视频97| 狠狠色丁香久久婷婷综合丁香| 久久综合影视| 一区二区三区日韩精品视频| 欧美一区二区视频在线观看2020| 极品日韩久久| 欧美日韩在线另类| 欧美亚洲在线视频| 亚洲激情影视| 久久久久国产精品午夜一区| 亚洲区一区二| 国产精品综合视频| 欧美大成色www永久网站婷| 夜夜嗨av一区二区三区网站四季av | 一二三区精品福利视频| 久久久777| 一本综合精品| 一色屋精品亚洲香蕉网站| 性娇小13――14欧美| 亚洲午夜在线观看视频在线| 国产日韩欧美成人| 欧美精品观看| 久久九九免费视频| 在线视频亚洲一区| 欧美大片一区二区三区| 亚洲欧美日韩一区在线观看| 一区免费视频| 国产精品每日更新| 欧美精品日韩一本| 久久久久综合| 亚洲女人av| 一本到12不卡视频在线dvd | 亚洲摸下面视频| 欧美成人国产一区二区| 欧美亚洲色图校园春色| 91久久精品www人人做人人爽 | 国产欧美一区二区三区在线看蜜臀| 女女同性女同一区二区三区91| 亚洲综合第一| 亚洲精品一区二区三区四区高清 | 欧美一区二区观看视频| 日韩亚洲一区二区|