2012年4月6日 星期五

Android in mac 環境

此篇為記錄文章,下次遇到同樣的問題就不用再找了

找了好久終於找到下面這個網站,教的很詳細
在mac建置android環境
http://wiki.cyanogenmod.com/wiki/Howto:_Install_the_Android_SDK

途中遇到了 排除匯入時的Unable to resolve target錯誤
http://note.blogger.idv.tw/70.html

2012年4月4日 星期三

zerojudge 目錄

基礎題庫
a001 a002 a003 a004 a005 a006 a007 a008 a009 a010 a011 a012 a013 a015 a016 a017 a020 a021 a022 a024 a032 a034 a038 a040 a042 a044 a053 a054 a058 a059 a065 a104 a121 a141 a147 a148 a149 a160 a215 a216 a224 a225 a228 a229 a244 a248 a263 a271 a272 a289 a290 a291 a410 a414 a417 d010 d016 d017 d018 d049 d050 d051 d058 d059 d060 d063 d064 d065 d066 d067 d068 d069 d070 d071 d072 d073 d074 d086 d098 d102 d114 d115 d119 d122 d124 d166 d170 d171 d212 d244 d264 d277 d287 d299 d326 d392 d460 d461 d462 d465 d466 d467 d468 d471 d473 d475 d478 d483 d485 d489 d490 d491 d493 d498 d499 d506 d507 d511 d525 d526 d527 d532 d540 d541 d550 d555 d559 d561 d562 d563 d566 d573 d574 d575 d583 d584 d586 d587 d623 d625 d626 d634 d635 d636 d637 d639 d643 d644 d645 d646 d649 d652 d681 d693 d705 d709 d710 d715 d732 d827 d872 d881 d984 d985

競賽題庫
a227 a240 a241 b001 b002 b003 b004 b005 b006 b050 b051 b052 b053 b054 b055 b056 b058 b059 b060 b061 b062 b063 b064 b065 b066 b067 b108 b109 b110 b111 b112 b113 b119 b120 b121 b122 b123 b124 b125 b127 b128 b172 b173 b174 b175 b176 b177 b178 b179 b180 b181 b182 b183 b184 b185 b186 b187 b188 b189 b190 b216 b217 b218 b219 b220 b221 b234 b235 b236 b237 d084 d126 d127 d128 d139 d140 d141 d153 d164 d165 d227 d231 d232 d233 d249 d250 d251 d252 d358 d369 d370 d371 d372 d373 d374 d429 d430 d431 d432 d451 d452 d453 d454 d482 d501 d502 d503 d504 d534 d535 d536 d537 d544 d545 d546 d547 d548 d596 d597 d598 d599 d600 d601 d613 d648 d665 d784 d785 d786 d787 d814 d874 d887 d889 d890 d905 d906 d907 d908 d913 d914 d915 d916 d917 d918

NPSC
b013 b014 b015 b016 b017 b018 b019 b020 b021 b022 b023 b024 b025 b026 b027 b028 b029 b030 b031 b032 b033 b034 b035 b036 b037 b038 b039 b040 b041 b042 b043 b045 b046 b047 b048 b049 b069 b070 b071 b072 b073 b074 b075 b076 b077 b078 b079 b080 b081 b082 b083 b084 b085 b086 b087 b088 b089 b090 b091 b092 b093 b094 b095 b096 b097 b098 b099 b100 b101 b102 b103 b104 b105 b106 b107 b196 b197 b198 b199 b200 b201 b202 b203 b204 b205 b206 b207 b208 b209 b210 b211 b212 b213 b214 b215 b222 b223 b224 b225 b226 b227 b228 b238 b239 b240 b241 b242 b243 b244 b245 b246 b249 b250 b251 b252 b253 b254 b255 b256 b257 b258 b259 d210 d377 d588 d589 d590 d591 d592 d593 d594 d929 d930 d931 d932 d933 d934 d943 d944 d945 d946 d947 d948 d949 d950 d951 d952 d953 d954 d955 d956 d961 d962 d963 d964 d965 d966 d967

TOI/NOI
a019 a055 a056 a066 a067 a069 a070 a071 a072 a074 a077 a078 a079 a080 a081 a082 a083 a084 a085 a086 a087 a088 a089 a090 a092 a093 a094 a124 a126 a127 a137 b114 b115 b116 b117 b118 b130 b131 b132 b133 b134 b135 b136 b137 b138 b139 b140 b141 b142 b143 b144 b145 b146 b147 b148 b149 b150 b151 b152 b153 b158 b159 b160 b161 b162 b163 b164 b165 b229 b230 b231 b232 b233 d103 d104 d105 d106 d107 d108 d109 d110 d203 d229 d230 d234 d298 d354 d356 d357 d445 d603 d605 d606 d607 d608 d609 d610 d611 d612 d682 d773 d774 d775 d776 d777 d778 d779 d780 d801 d835 d836 d837 d838 d839 d840 d841 d842 d844 d849 d850 d851 d852 d853 d854 d855 d856 d858 d859 d860 d861 d862 d868 d869 d870 d871 d880 d892 d893 d894 d895 d899 d900 d901 d902 d904 d911 d912 d998

UVa 題庫
a111 a130 a131 a132 a133 a134 a168 c001 c002 c004 c005 c006 c007 c009 c010 c012 c013 c014 c015 c022 c024 c031 c032 c033 c034 c036 c039 c044 c045 c048 c049 c050 c054 c055 c060 c061 c067 c069 c073 c074 c077 c079 c081 c082 c083 c084 c085 c086 c087 c088 c089 c091 c092 c093 c094 c095 c096 c098 c099 c100 c101 c102 c103 c104 c105 c106 c107 c108 c109 c110 c111 c112 c113 c114 c115 c116 c117 c119 c120 c121 c122 c123 c124 c125 c126 c127 c128 c129 c130 c131 c132 c133 c134 c135 c139 d038 d039 d040 d041 d042 d043 d044 d045 d047 d048 d052 d053 d054 d055 d056 d057 d087 d088 d089 d091 d093 d094 d095 d096 d097 d111 d117 d120 d121 d123 d129 d130 d131 d132 d133 d134 d135 d142 d143 d150 d154 d174 d182 d183 d186 d187 d188 d189 d190 d191 d192 d193 d194 d195 d196 d197 d198 d206 d207 d217 d219 d221 d222 d223 d224 d226 d235 d242 d253 d255 d256 d258 d260 d261 d263 d265 d267 d268 d269 d270 d271 d272 d273 d275 d279 d281 d282 d285 d286 d292 d306 d307 d318 d324 d329 d335 d341 d343 d347 d351 d352 d361 d362 d364 d365 d366 d368 d375 d379 d380 d385 d386 d387 d389 d390 d394 d395 d396 d397 d404 d412 d417 d418 d419 d420 d421 d423 d424 d436 d437 d438 d439 d440 d441 d442 d443 d524 d542 d656 d658 d659 d660 d663 d664 d666 d667 d669 d670 d671 d672 d673 d674 d686 d691 d729 d731 d733 d750 d751 d756 d757 d759 d760 d762 d764 d766 d768 d771 d781 d782 d783 d789 d790 d791 d792 d793 d795 d797 d813 d873 d879 d882 d898

原創/不分類題庫
a014 a048 a063 a064 a068 a073 a091 a129 a144 a146 a156 a163 a164 a165 a167 a168 a169 a170 a171 a172 a174 a175 a176 a181 a186 a190 a191 a218 a219 a276 d075 d085 d092 d118 d125 d137 d155 d156 d157 d167 d173 d177 d180 d199 d201 d202 d209 d213 d214 d218 d228 d236 d237 d238 d239 d243 d246 d262 d266 d276 d280 d283 d284 d288 d289 d290 d291 d294 d295 d296 d297 d304 d308 d309 d311 d312 d313 d314 d315 d316 d323 d328 d330 d334 d336 d337 d353 d359 d360 d363 d367 d378 d382 d400 d401 d402 d406 d407 d408 d411 d416 d422 d425 d427 d434 d444 d446 d448 d456 d458 d459 d463 d472 d476 d477 d479 d480 d481 d486 d487 d512 d517 d518 d522 d533 d539 d543 d549 d552 d564 d569 d572 d576 d577 d578 d579 d580 d581 d614 d615 d618 d619 d621 d624 d627 d632 d633 d640 d647 d650 d653 d655 d668 d688 d692 d702 d703 d704 d708 d712 d713 d716 d717 d718 d730 d734 d735 d739 d741 d747 d763 d767 d769 d788 d794 d796 d798 d799 d800 d804 d806 d807 d808 d809 d810 d815 d816 d817 d821 d822 d825 d826 d828 d830 d831 d832 d847 d875 d885 d903 d909 d910 d919 d920 d923 d925 d978 d990

d583: 幼稚的企鵝

內容 :
    小企鵝總是天真可愛,但擺脫不了幾分幼稚。
    現在企鵝幼稚園的企鵝老師要小企鵝任意排隊。
    而小企鵝們卻很堅持要照老師給他們的座號來排隊,
    偏偏有的小企鵝就是會忘記自己的座號亂排,
    於是可以想見的是一群短鳥喙的小企鵝爭吵互啄的景象了…

輸入說明 :
    本題有2個測資點,每個50分,每個測資點有多組測資。
    每組測資的第一行有整數n(1<=n<=100000)代表有幾隻企鵝。
    第二行則有n個數字的數列代表每隻企鵝的座號,並且座號必定有1~n不重覆。

輸出說明 :
    請由小到大輸出已經排序的數列。

範例輸入 :
10
9 5 10 4 3 6 1 2 7 8
30
30 29 28 27 26 25 10 11 12 13 15 14 16 19 18 17 20 24 23 22 21 8 9 7 6 5 3 4 2 1

範例輸出 :
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

程式碼 :
#include<stdio.h>

int main()
{
    int i, n, temp;
    
    while(scanf("%d ",&n)==1)
    {        
        n++;
        for(i=1; i<n; i++)
        {
            scanf("%d",&temp);
            printf("%d ",i);
        }
        printf("\n");
    }
    return 0;
}



http://zerojudge.tw/ShowProblem?problemid=d583

a111: 12149 - Feynman

內容 :
    費曼 (Richard Phillips Feynman) 是一個有名的美國物理學家及諾貝爾物理獎得主。他主攻理論物理並倡導量子電腦。他曾訪問南美十個月,在那兒演講並享受熱帶生活。他的成名作「別鬧了,費曼先生」及「你管別人怎麼想」中也包含了他在赤道以南的經歷。

    他一生的嗜好是解及建立謎題、鎖、及密碼。最近,曾在1949年接待費曼的一位南美老農夫找到一些據信屬於這位年輕物理學家的筆記。在這些有關介子及電磁學的筆記中,夾有一張餐巾紙,上寫有個簡單的謎題:「在一個 N ×N 的方格中含有幾個不同的正方形?」
下面重現了該餐巾紙上的圖,顯示 N=2 時答案為 5。



輸入說明 :
    輸入有若干筆測資,每筆一行,含有一個整數 N,代表方格的邊長 (1 ≤ N ≤ 100)。
    輸入的結束以含有一個零的一行表示。

輸出說明 :
    對於每筆測資,你的程式須輸出該筆測資一共包含幾個不同的正方形於一行。

範例輸入 :
2
1
8
0

範例輸出 :
5
1
204

出處 :
UVa ACM 12149

程式碼 :
#include<stdio.h>

int main()
{
    int i, n;
    long long arr[101]={0};
    
    for(i=1; i<101; i++)
        arr[i] += i*i + arr[i-1];
    
    while(scanf("%lld",&n)==1)
    {
        if(n == 0)
            break;
        printf("%lld\n",arr[n]);
    }

    return 0;
}


http://zerojudge.tw/ShowProblem?problemid=a111

d098: Stringstream運用練習(C++)

內容 :
    小明為了要保證資料傳輸的隱密性,為檔案設置了一個加密金鑰,並且將金鑰藏進了一個檔案裡。收到檔案的小風得知要解譯出他所使用的加密金鑰,必須將檔案裡所有不含非數字的單字找出,加起來就是加密金鑰。可是,要求出這個金鑰,如果自己慢慢加實在是太慢了,所以請你寫一個程式來幫助他吧!

輸入說明 :
    每組測資有一行,內含多個單字,每個單字之間會以空格作分隔(每一行的前後都有可能有空格,且分隔單字的空格可能不只一個)。

輸出說明 :
    請求出所有僅含數字的單字,並且加總後輸出。這些數字的總和不會超過2的16次方。

範例輸入 :
zerojudge萬歲
1a6f 6 65afd 15s 1sa 12 115

範例輸出 :
0
133

程式碼 :
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void isword(char word[], int *sum)
{
    int i,len;
    
    len = strlen(word);
    
    for(i=0; i<len; i++)
        if('0' > word[i] || word[i] > '9')
            break;
    if(i == len)
        *sum += atoi(word);
}

int main()
{
    int i, j, k, sum = 0, len, len_word;
    char s[5000], check, word[1000];
    
    while(gets(s) != NULL)
    {
        len = strlen(s);
        
        for(i=k=0; i<len; i++)
        {
            if(s[i] == ' ')
            {
                word[k] = '\0';
                isword(word, &sum);
                k = 0;
            }
            else
                word[k++] = s[i];
        }
        
        word[k] = '\0';
        isword(word, &sum);
                
        printf("%d\n",sum);
        sum = 0;
    }
    
    return 0;
}



http://zerojudge.tw/ShowProblem?problemid=d098

d038: 900 - Brick Wall Patterns

內容 :
    如果我們要用常見的長度為高度兩倍的磚塊建一道磚牆,並且牆的高度為兩個單位,根據牆的長度,我們可以建出不同數量的花樣。從圖一我們可以看出:
                                               

  •     寛度為 1 單位的牆只有一種花樣—就是讓磚塊直立。
  •     長度為 2 的牆有 2 種花樣—兩個平躺的磚磈疊在一起以及兩個直立的磚塊併在一起。
  •     長度為 3 的牆有三種花樣。

    長度為 4 的牆你可以找出幾種花樣?那長度為 5 的牆呢?

    問題
    你的工作是要寫一個程式,給它牆的長度,它就算出這道牆可以有幾種花樣。

輸入說明 :
    你將程式會收到一連串的整數,一行一個,每個整數代表牆的長度。牆的最大長度為 50。

輸出說明 :
    對於每個輸入的牆長度,你要輸出這道牆的花樣數量,每個數字單獨一行。

範例輸入 :
1
2
3
0

範例輸出 :
1
2
3

提示 :
    背景知識: DP

出處 :
    UVa ACM 900

程式碼 :
#include <stdio.h>

int main(void) 
{
    int i, n;
    long long arr[51];
    
    arr[1] = 1;
    arr[2] = 2;
    for(i=3; i<51; i++)
        arr[i] = arr[i-1] + arr[i-2];
    
    while(scanf("%d",&n)==1)
    {
        if(n == 0)
            break;
        
        printf("%lld\n",arr[n]);
    }
    
    return 0;
}

http://zerojudge.tw/ShowProblem?problemid=d038

2012年4月3日 星期二

d378: 最小路徑

內容 :
    現在有一張地圖,凡是走過某一個格子,都會消耗體力,所以請你找出最少消耗體力值。
    現在老鼠在地圖的左上角,在走的時候時,所以只能往右或下走,之後要走到右下角,
    走過的點上的數字必須加總,請輸出加總的數字最小的。

    測資一 :
    0 7 8 9
    1 5 1 1
    2 4 10 0

    可以走 0 → 7 → 8 → 9 → 1 → 0       SUM = 7 + 8 +9 + 1 = 25
                 0 → 1 → 5 → 1 → 1 → 0       SUM = 1 + 5 + 1 + 1 =8
                 0 → 7 → 8 → 1 → 10 → 0     SUM = 7 + 8 + 1 + 10 = 26
.
.
    以此類推,只輸出最小值 8

    " 左上角跟右下角必為 0 "

輸入說明 :
    輸入的每第一行會有兩個數字 N, M ( 2 ≦ N , M ≦ 101)
    之後會有 N 行,每行上會有 M 個數字 G ( 1 ≦ G ≦ 20 )

輸出說明 :
    對每組地圖先輸出 "Case #%d :"
    輸出從左上走到右下最少的體力消耗

範例輸入 :
3 4
0 7 8 9
1 5 1 1
2 4 10 0
2 2
0 1
1 0

範例輸出 :
Case #1 :
8
Case #2 :
1

提示 :
DP

程式碼 :
#include<stdio.h>

int main()
{
    int i,j,n,m,count;
    int map[101][101];
    
    count = 1;
    while(scanf("%d%d",&n,&m)==2)
    {
        for(i=0; i<n; i++)
            for(j=0; j<m; j++)
                scanf("%d",&map[i][j]);
        
        for(i=1; i<n; i++)
            map[i][0] += map[i-1][0];
        
        for(j=1; j<m; j++)
            map[0][j] += map[0][j-1];
        
        for(i=1; i<n; i++)
            for(j=1; j<m; j++)
            {
                if(map[i-1][j] > map[i][j-1])
                    map[i][j] += map[i][j-1];
                else
                    map[i][j] += map[i-1][j];
            }
        
        printf("Case #%d :\n%d\n",count++,map[n-1][m-1]);
    }
    
    return 0;
}



http://zerojudge.tw/ShowProblem?problemid=d378

d632: C and S ??

內容 :
    有一天,小明在網路上看到一種神奇的魔法
    根據小明的推測,這種魔法似乎是一種數學布林函數
    這個函數是長這樣的:

    輸入部分:
        A、B和C
    輸出部分:
        S 和 C'

    S = A xor B xor C
    C' = (A and B) or (B and C) or (C and A)
    小明將好多個這種函數當成丸子般串起來

    並且把兩個布林數列代進去
    神奇的事情發生了...
    當A為0010
        B為0011
    所得到的S數列竟然是0101!!!
    //==================
    小明今天想做實驗,看看代入不同的A和B,所得到的S數列是長什麼樣子

輸入說明 :
    給定兩個數列A和B(AB兩者長度皆為32)

輸出說明 :
    S數列

範例輸入 :
00000000000000000000000000001100
00000000000000000000000000001101

範例輸出 :
00000000000000000000000000001100
00000000000000000000000000001101
---------------------------------
00000000000000000000000000011001
****End of Data******************

程式碼 :
#include<stdio.h>

int main()
{
    int i,carry;
    char a[33],b[33],s[33];
    char line[34] = "---------------------------------";
    char end[34] = "****End of Data******************";
    
    while(scanf("%s%s",a,b)==2)
    {
        for(i=0; i<32; i++)
        {
            a[i] -= '0';
            b[i] -= '0';
        }
        
        carry = 0;
        for(i=31; i>-1; i--)
        {
            s[i] = a[i] ^ b[i] ^ carry;
            carry = (a[i] & b[i]) | (b[i] & carry) | (a[i] & carry);
        }
        s[32] = '\0';
        
        for(i=0; i<32; i++)
        {
            a[i] += '0';
            b[i] += '0';
            s[i] += '0';
        }
        printf("%s\n%s\n%s\n%s\n%s\n", a, b, line, s, end);
    }
    
    return 0;
}


http://zerojudge.tw/ShowProblem?problemid=d632

d807: 方方

內容 :
    在一個遙遠的國度裡,每個村莊都是長方型的,雖然有時候會很不方便
    但是大家還是過著快樂的日子。直到有一天,有個異地來的軍隊,想要佔領各個村莊
    他們佔領的方式是,從村莊裡頭,切出一個儘可能大的正方形,先佔為己有
    隔日,在從未佔領的部分,重複這樣的動作。
    直到某一天,未佔領的部分為一個正方形的時候,就結束佔領的動作。
    現在我們想知道,最後的那一個正方形是多大?(見圖)
 

輸入說明 :
    給定兩個正整數 n,m 表示村莊的長寬。n,m皆介於 1 ~ 10^9
    包含多筆測試資料。

輸出說明 :
    輸出,最後的正方形大小

範例輸入 :
5 5
2 1
2 2
10 5
13 9

範例輸出 :
5
1
2
5
1

PS : 最大公因數

程式碼:
#include<stdio.h>

int main()
{
    int m,n;
    
    while(scanf("%d%d",&m,&n)==2)
    {
        if(m < n)
            m ^= n ^= m ^= n;
        while((m = (m % n)) != 0)
        {
            m ^= n ^= m ^= n;
        }
        printf("%d\n",n);
    }
    
    return 0;
}




http://zerojudge.tw/ShowProblem?problemid=d807