1 11472: Beautiful Numbers ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11472: Beautiful Numbers 解題者:邱經達 解題日期: 2011 年 5 月 5 日 題意: 若一個 N 進位的數用到該.

Slides:



Advertisements
Similar presentations
Chapter 10 馬可夫鏈 緒言 如果讀者仔細觀察日常生活中所發生的 諸多事件,必然會發現有些事件的未來 發展或演變與該事件現階段的狀況全然 無關,這種事件稱為獨立試行過程 (process of independent trials) ;而另一些 事件則會受到該事件現階段的狀況影響。
Advertisements

: Arrange the Numbers ★★★☆☆ 題組: Contest Archive with Online Judge 題號: 11481: Arrange the Numbers 解題者:李重儀 解題日期: 2008 年 9 月 13 日 題意: 將數列 {1,2,3, …,N}
布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
: A-Sequence 星級 : ★★☆☆☆ 題組: Online-judge.uva.es PROBLEM SET Volume CIX 題號: Problem D : A-Sequence 解題者:薛祖淵 解題日期: 2006 年 2 月 21 日 題意:一開始先輸入一個.
:Word Morphing ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10508:word morphing 解題者:楊家豪 解題日期: 2006 年 5 月 21 日 題意: 第一行給你兩個正整數, 第一個代表下面會出現幾個字串,
1 Q10276: Hanoi Tower Troubles Again! 星級 : ★★★ 題組: Online-judge.uva.es PROBLEM SET Volume CII 題號: Q10276: Hanoi Tower Troubles Again! 解題者:薛祖淵 解題日期: 2006.
自由進入及離開. 定義  長期 ─ 是指生產者能夠改變所有生產因素的情況。  自由進入及離開 ─ 是指公司能夠自由進入及離開市場而不受限 制。
: Boxes ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11003: Boxes 解題者:蔡欣燁 解題日期: 2007 年 3 月 19 日.
: Factstone Benchmark ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: : Factstone Benchmark 解題者:鐘緯駿 解題日期: 2006 年 06 月 06 日 題意: 假設 1960.
:New Land ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11871: New Land 解題者:施博修 解題日期: 2011 年 6 月 8 日 題意:國王有一個懶兒子,為了勞動兒子,他想了一個 辦法,令他在某天早上開始走路,直到太陽下山前,靠.
: OPENING DOORS ? 題組: Problem Set Archive with Online Judge 題號: 10606: OPENING DOORS 解題者:侯沛彣 解題日期: 2006 年 6 月 11 日 題意: - 某間學校有 N 個學生,每個學生都有自己的衣物櫃.
: ShellSort ★★☆☆☆ 題組: Problem D 題號: 10152: ShellSort 解題者:林一帆 解題日期: 2006 年 4 月 10 日 題意:烏龜王國的烏龜總是一隻一隻疊在一起。唯一改變烏龜位置 的方法為:一隻烏龜爬出他原來的位置,然後往上爬到最上方。給 你一堆烏龜原來排列的順序,以及我們想要的烏龜的排列順序,你.
: Matrix Decompressing ★★★★☆ 題組: Contest Volumes with Online Judge 題號: 11082: Matrix Decompressing 解題者:蔡權昱、劉洙愷 解題日期: 2008 年 4 月 18 日 題意:假設有一矩陣 R*C,
: The Playboy Chimp ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10611: The Playboy Chimp 解題者:蔡昇宇 解題日期: 2010 年 2 月 28 日 題意:給一已排序的數列 S( 升冪.
: Walking on a Grid ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 10913: Walking on a Grid 解題者:陳盈村 解題日期: 2008 年 5 月 2 日 題意:給定一個 N*N 矩陣,題目要求依照.
Network Connections ★★★☆☆ 題組: Contest Archive with Online Judge 題號: Network Connections 解題者:蔡宗翰 解題日期: 2008 年 10 月 20 日 題意:給你電腦之間互相連線的狀況後,題.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
:Problem D: Bit-wise Sequence ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10232: Problem D: Bit-wise Sequence 解題者:李濟宇 解題日期: 2006 年 4 月 16.
: The largest Clique ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11324: The largest Clique 解題者:李重儀 解題日期: 2008 年 11 月 24 日 題意: 簡單來說,給你一個 directed.
: Tight words ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: : Tight Words 解題者:鐘緯駿、林一帆 解題日期: 2006 年 03 月 14 日 題意: 給定數字 k 與 n (0 ≦ k.
: Point of View in Flatland ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 11037: Point of View in Flatland 解題者:黃士庭 解題日期: 2007 年 5 月 15 日 題意:在座標平面上給三個圓,找一個點使從這.
: Happy Number ★ ? 題組: Problem Set Archive with Online Judge 題號: 10591: Happy Number 解題者:陳瀅文 解題日期: 2006 年 6 月 6 日 題意:判斷一個正整數 N 是否為 Happy Number.
: Fast and Easy Data Compressor ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10043: Fast and Easy Data Compressor 解題者:葉貫中 解題日期: 2007 年 3.
: Little Red Riding Hood ★★★☆☆ 題組: Contest Volumes Archive with Online Judge 題號: 11067: Little Red Riding Hood 解題者:陳明凱 解題日期: 2008 年 3 月 14 日 題意:
: Playing War ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11061: Playing War 解題者:陳盈村 解題日期: 2008 年 3 月 14 日 題意:在此遊戲中,有一類玩家一旦開始攻擊, 就會不停攻擊同一對手,直到全滅對方或無法再.
: Problem A : MiniMice ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11411: Problem A : MiniMice 解題者:李重儀 解題日期: 2008 年 9 月 3 日 題意:簡單的說,題目中每一隻老鼠有一個編號.
: Ahoy, Pirates! ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11402: Ahoy, Pirates! 解題者:李重儀 解題日期: 2008 年 8 月 26 日 題意:有一個海盜島有 N 個海盜,他們的編號 (id)
: Count DePrimes ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11408: Count DePrimes 解題者:李育賢 解題日期: 2008 年 9 月 2 日 題意: 題目會給你二個數字 a,b( 2 ≦ a ≦ 5,000,000,a.
: Multisets and Sequences ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11023: Multisets and Sequences 解題者:葉貫中 解題日期: 2007 年 4 月 24 日 題意:在這個題目中,我們要定義.
: Selfdescribing Sequence ★★★ 題組: Problem Set Archive with Online Judge 題號: Problem C: Selfdescribing Sequence 解題者:林峰世 解題日期: 2006 年 3 月 21 日 題意:
: Robot Motion ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: : Robot Motion 解題者:鄭昀旻 解題日期: 2009 年 5 月 20 日 題意:有一機器人會從網格的上(N)方進入, 依網格上之E、W、S、N之指令來行走,題目.
:Nuts for nuts..Nuts for nuts.. ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 10944:Nuts for nuts.. 解題者:楊家豪 解題日期: 2006 年 2 月 題意: 給定兩個正整數 x,y.
Marble on tree ★★★☆☆ 題組: ACM Programming Contest World Finals, 1998 題號: Marble on tree 解題者:呂為萱 解題日期: 2011 年 3 月 16 日 題意: 有 n 個箱子,被擺放在 rooted.
資料結構實習-一 參數傳遞.
: Flea circus ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10938: Flea circus 解題者:李育賢 解題日期: 2008 年 6 月 6 日 題意:題目會給定一些點當做樹與樹枝或樹葉連 接的地方 ( 最多.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2008.
: Problem G e-Coins ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10306: Problem G e-Coins 解題者:陳瀅文 解題日期: 2006 年 5 月 2 日 題意:給定一個正整數 S (0
: A-Sequence ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10930: A-Sequence 解題者:陳盈村 解題日期: 2008 年 5 月 30 日 題意: A-Sequence 需符合以下的條件, 1 ≤ a.
: THE SAMS' CONTEST ☆☆★★★ 題組: Problem Set Archive with Online Judge 題號: 10520: THE SAMS' CONTEST 解題者:陳相廷,林祺光 解題日期: 2006 年 5 月 22 日 題意:依以下式子,給定 n.
: 05-2 Rendezvous ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11015: 05-2 Rendezvous 解題者:池明洋 解題日期: 2006 年 4 月 16 日 題意: 給 node N 個 , edge.
: Lucky Number ★★★★☆ 題組: Proble Set Archive with Online Judge 題號: 10909: Lucky Number 解題者:李育賢 解題日期: 2008 年 4 月 25 日 題意:給一個奇數數列 1,3,5,7,9,11,13,15…
函式 Function Part.2 東海大學物理系‧資訊教育 施奇廷. 遞迴( Recursion ) 函式可以「呼叫自己」,這種動作稱為 「遞迴」 此程式的執行結果相當於陷入無窮迴圈, 無法停止(只能按 Ctrl-C ) 這給我們一個暗示:函式的遞迴呼叫可以 達到部分迴圈的效果.
: GCD - Extreme II ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11426: GCD - Extreme II 解題者:蔡宗翰 解題日期: 2008 年 9 月 19 日 題意: 最多 20,000 組測資,題目會給一個數字.
演算法 8-1 最大數及最小數找法 8-2 排序 8-3 二元搜尋法.
: Automatic correction of misspellings ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11048: Automatic correction of misspellings 解題者:陳宜佐 解題日期:
: Expect the Expected ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11427: Expect the Expected 解題者:李重儀 解題日期: 2008 年 9 月 21 日 題意:玩一種遊戲 (a game.
: Flip Sort ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10327: Flip Sort 解題者:歐子揚 解題日期: 2010 年 2 月 26 日 題意:在這個問題中使用一種排序方式 (Flip) ,意思就是 只能交換相鄰的.
2015/6/ : Simple division ★★☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10407: Simple division 解題者:侯沛彣、柯名澤 解題日期: 2006 年 5 月 16 日 題意: 給一個不為零的整數數列,請找出除以每個數字後能.
845: Gas Station Numbers ★★★ 題組: Problem Set Archive with Online Judge 題號: 845: Gas Station Numbers. 解題者:張維珊 解題日期: 2006 年 2 月 題意: 將輸入的數字,經過重新排列組合或旋轉數字,得到比原先的數字大,
: Function Overloading ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11032:Function Overloading 解題者:許智祺 解題日期: 2007 年 5 月 8 日 題意:判對輸入之數字是否為.
Extreme Discrete Summation ★★★★☆ 題組: Contest Archive with Online Judge 題號: Extreme Discrete Summation 解題者:蔡宗翰 解題日期: 2008 年 10 月 13 日.
: Help My Brother ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11033: Help My Brother 解題者: 呂明璁 解題日期: 2007 年 5 月 14 日.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2009.
: Sum-up the Primes ★★★★☆ 題組: Problem A 題號: 10419: Sum-up the Primes 解題者:林一帆 解題日期: 2006 年 5 月 15 日 題意: 評斷一個給予的數字是否是由給予個數 的質數所組成的.
: Ordering Tasks ☆☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 10305: Ordering Tasks 解題者:陳相廷 解題日期: 2006 年 6 月 12 日 題意:給定兩兩工作的先後關係,求出整體合 法執行順序。
: Mini Cube ★★★★★ 題組: Problem Set Archive with Online Judge 題號: 11007: Mini Cube 解題者:郭峻維 解題日期: 2007 年 3 月 27 日 題意:找出 2x2x2 的 Rubik‘s cube 的最佳解。
: Problem E Antimatter Ray Clearcutting ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11008: Problem E Antimatter Ray Clearcutting 解題者:林王智瑞.
:Stupid Sequence ★★★☆☆ 題組: Contest Archive with Online Judge 題號: 11319: Stupid Sequence 解題者:李育賢 解題日期: 2008 年 11 月 23 日 題意: 一個公式 f(x)=a 0 +a 1 x+a.
:Commandos ★★★☆☆ 題組: Contest Archive with Online Judge 題號: 11463: Commandos 解題者:李重儀 解題日期: 2008 年 8 月 11 日 題意: 題目會給你一個敵營區內總共的建築物數,以及建築物 之間可以互通的路有哪些,並給你起點的建築物和終點.
: Searching for Nessy ★☆☆☆☆ 題組: Problem Set Archive with Online Judge 題號: 11044: Searching for Nessy 解題者:王嘉偉 解題日期: 2007 年 5 月 22 日 題意: 給定 case 數量.
: Place the Guards ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11080: Place the Guards 解題者:陳盈村 解題日期: 2008 年 3 月 26 日 題意:有一個國王希望在他的城市裡佈置守衛,
: SAM I AM ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11419: SAM I AM 解題者:李重儀 解題日期: 2008 年 9 月 11 日 題意: 簡單的說,就是一個長方形的廟裡面有敵人,然 後可以橫的方向開砲或縱向開砲,每次開砲可以.
:Count the Trees ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10007:Count the Trees 解題者:楊家豪 解題日期: 2006 年 3 月 題意: 給 n 個點, 每一個點有自己的 Label,
: Bee Maja ★★☆☆☆ 題組: Contests Hosting Service with Online Judge 題號: 10182: Bee Maja 解題者:林祺光、李哲宇 解題日期: 2006 年 3 月 26 日 題意:現有兩種六邊形座標系,將甲座標系的某一點轉 為相對應的乙座標系。
: GCD (I) ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11424: GCD(I) 解題者:李育賢 解題日期: 2008 年 9 月 19 日 題意: 最多 20,000 組測資,題目會給一個數字 N(1
: Finding Paths in Grid ★★★★☆ 題組: Contest Archive with Online Judge 題號: 11486: Finding Paths in Grid 解題者:李重儀 解題日期: 2008 年 10 月 14 日 題意:給一個 7 個 column.
:Problem E.Stone Game ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10165: Problem E.Stone Game 解題者:李濟宇 解題日期: 2006 年 3 月 26 日 題意: Jack 與 Jim.
幼兒行為觀察與記錄 第八章 事件取樣法.
: How many 0's? ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 11038: How many 0’s? 解題者:楊鵬宇 解題日期: 2007 年 5 月 15 日 題意:寫下題目給的 m 與 n(m
: Simple Minded Hashing ★★★☆☆ 題組: Problem Set Archive with Online Judge 題號: 10912: Simple Minded Hashing 解題者:陳俊達 解題日期: 2008 年 5 月 02 日 題意: 給兩個正整數,長度.
Presentation transcript:

: Beautiful Numbers ★★★★☆ 題組: Problem Set Archive with Online Judge 題號: 11472: Beautiful Numbers 解題者:邱經達 解題日期: 2011 年 5 月 5 日 題意: 若一個 N 進位的數用到該 base 裡全部的數 字,且任兩個數字之間的差值都剛好是 1 且首位 數字不為 0 ,則該數字為 Beautiful Number 。 給定兩數 N 、 M ,分別代表 N-base 及 M 位數字, 求出在 N-base 中的數字從長度 1 到長度 M 總共出現 多少個 Beautiful Numbers 。 2<=N<=10 , 1<=M<=100 。

2 題意範例: N=2 , M=5 Beautiful Number 一共有以下 4 種 10,101,1010,10101 Output  4 N=3 , M=5 Beautiful Number 一共有以下 9 種 210, 1012,1210,2101, 10121,12101,21010,21012,21210 Output  9

3 解法: Dynamic Programming + Bitmask 使用一 3 維陣列紀錄每個 Number 的狀態及個數 BN[used_digit][length][last_digit] use_digit: 這個 Number 有用到的數字 ( 以二進位表示 ) length: 該 Number 的位元長度 last_digit: 該 Number 的最後一位數字 例: BN[ ][6][2] 可代表 、 、 … 等

4 解法: 若輸入 N=5 M=10 則答案應該會存在以下幾格 BN[ ][length][0] BN[ ][length][1] BN[ ][length][2]... BN[ ][length][9] 其中 length = 1~M ↑ 從第 1 位開始連續五個 1 也就是都使用了 五個數字,長度為 length 而最後一 位數字分別從 0~9 如何計算上面那幾格的答案 ?

5 解法: 從個位數開始向後補位,規則為補上的數要與前一位相差 1 所以以下這些數都可能在補上一些尾數之後形成 beautiful numbers 且 * 只有 * 以下這些數才能以上述的補位規則形成 beautiful numbers 長度 BN[0111][5][1]= BN[1110][5][3]= … BN[0111][5][0]=2 BN[0111][5][2]=1 … 為 base-3 的 beautiful numbers)

6 解法範例: 由於要從個位數開始向後補位,所以初始條件則 令所有表示個位數 (0 除外 ) 的陣列值為 1 BN[used_digit][length][last_digit] BN[ ][1][1] = 1; BN[ ][1][2] = 1; BN[ ][1][3] = 1;... BN[ ][1][9] = 1;

7 解法範例: 則我們可以從上列中的個位數產生長度為 2 的 Numbers ,以個位數字 2 為例: 2→21 ( 補 1) 2→23 ( 補 3) 對以上的動作而言程式應該執行以下的動作 BN[ ][2][1] += BN[ ][1][2]; BN[ ][2][3] += BN[ ][1][2]; 再用長度為 2 的 Numbers 產生長度為 3 的 Numbers 21→210 ( 補 0) 21→212 ( 補 2) 對以上的動作而言程式應該執行以下的動作 BN[ ][3][0] += BN[ ][2][1]; BN[ ][3][2] += BN[ ][2][1];

8 解法範例: 從上列的範例可以觀察出 DP function 為 if (ld-1>=0) : BN[ used_bits | bit(ld-1) ][len+1][ld-1] += BN[used_bits][len][ld]; if (ld+1<10) : BN[ used_bits | bit(ld+1) ][len+1][ld+1] += BN[used_bits][len][ld]; 例: bit(3) =

9 解法範例: 用三層迴圈填完上頁的全部 BN[x][y][z] 陣列表格, x 最外層而 z 最內層, y = 1~100 、 z = 0~9 其中 x 不需要從 ~ 每個值 (1024 個 ) 都跑一遍。 從 Page.5 中的表可以知道,只有 used_bit 表示成 n 個 1 相鄰的數才有可 能向後補位形成 Beautiful Numbers ,也就是若 x 代表的 used_bits 不為 以下這些數值, BN 值必為 0 ,毋需處理 連續一個 1 連續兩個 1 連續三個 ……… … 等

10 解法範例: 利用一陣列 b[55] 依序存放上頁中所有的 x 值,計算方法如下: 連續一個 1 ,從 b[0]~b[9] 共十個 // i = 1~9 b[0] = 1; // b[i] = b[i-1]*2; 連續兩個 1 ,從 b[10]~b[18] 共九個 // i = 11~18 b[10] = 3; // b[i] = b[i-1]*2; 連續三個 1 ,從 b[19]~b[26] 共八個 // i = 20~26 b[19] = 3; // b[i] = b[i-1]*2; 以此類推直到連續十個 1 ,一共 55 個數

11 解法範例: 因此填表可以改寫成 BN[ b[x] ][y][z] , 其中 x = 0 ~ 54 、 y = 1~100 、 z = 0~9 最後對輸入 N 、 M ,問題的答案為: BN[ Beautiful_Numbers_bit[N] ][m][ld] 陣列中 m = 2 ~ M 、 ld = 0 ~ 9 的所有數值之總和

12 解法範例: 其中 Beautiful_Numbers_bit[N] 為 N=2→ N=3→ N=4→ N=5→ N=6→ N=7→ N=8→ N=9→ N=10→

13 討論: 時間複雜度: 需要花費最多時間的地方為填滿 BN[ b[x] ][y][z] O(x*y*z) , x = 0 ~ 54 、 y = 1~100 、 z = 0~9