0%

定義一數列$F$為:
$F_1=1, F_2=2$。
$F_n=F_n-1+F_n-2$。
給定兩正整數$a, b$,求$gcd(F_a, F_b)$

閱讀全文 »

在一個長寬高為$n$的三維空間中,每次在座標$(x, y, z)$可以跳到以下任一個:

  • $(y, x, z)$
  • $(x, z, y)$
  • $(z, x, y)$
  • $(2y - x + 1, 2x - y - 1, z)$

給定起始點$(x_1, y_1, z_1)$,問能不能跳到$(x_2, y_2, z_2)$

閱讀全文 »

遞給了你一張地圖,跟你解釋著:
這張地圖上面標示了許多連接城與城之間的雙向道路。每條道路上都有一座收費站。每
座收費站每個方向(沒錯,同一個收費站不同方向過路費也會不一樣)都有一個起始過路費C ,
在第一天時收費就是C元。但是還有一個費用變量P,每一天結束在下一天開始之前,
會把該方向過路費調整P元(正表示過路費調昇、負表示調降)。
也就是說,第T天的費用為C+(T-1)×P。
你們已經調查出了國王居住的城市跟皇后居住的城市,
而且知道國王一定會在[1,D](包含1 和 D)的某一天去拜訪皇后再在當日回到國王城市。
國王嗜錢如命,自然希望這一趟旅行過路費儘量少。
請你輸出國王選了最划算的日子拜訪皇后之下,所需要支付的總過路費。

閱讀全文 »

從前從前,在「單行道國」中有兩個人,John和Jon。他們兩個人是死對頭,而且都住在同一個小鎮$A$。
「單行道國」顧名思義,這個國家每一條路都是連接兩個小鎮的單行道,並且國家中總共有$N$個小鎮,從編號$0$到$N-1$。這個國家的交通其實相當發達,所以對於任意兩個小鎮$X,Y$,都存在路線可以從$X$走到$Y$。另外,有些小鎮之間可能會兩個方向的單行道各有一條;甚至在重要的小鎮之間可能會有很多條起終點一樣的單行道。當然,單行道國的政府也看上了他們國家交通發達這件事情,於是決定在每一條道路都蓋一個收費站,任何一個開車經過的人民都要收過路費。
某一天,John要到$B$鎮去旅遊。沒想到,在他收拾好一切行李準備出發的時候,他卻聽說兩天前Jon剛好也去了$B$鎮一趟!身為Jon的死對頭,John決定說什麼也不要和Jon走類似的路線。幸好John知道Jon是個非常節省的人,所以Jon從$A$鎮到$B$鎮時一定會挑選總過路費最少的路線前往。
因此,John算出了Jon從$A$鎮到$B$鎮時繳了多少過路費,並且決定自己從$A$鎮前往$B$鎮的時候繳的總過路費一定要跟Jon不一樣。在滿足這個前提之下,John會讓自己繳的總過路費愈少愈好(當然,這樣有可能是必須要繞路的,也就是說John走的路線可能會重複經過某個小鎮或重複經過某一條單行道)。你能幫John算出他繳的總過路費和Jon繳的總過路費差了多少錢嗎?

閱讀全文 »

從前,有個古老流傳的單人遊戲是這樣的
從1~n的整數中,你可以選擇把每個數當成兩種類別的其中一種:”倍數” 和 “因數”
被歸類為”因數”的數字沒有得分,但當然的,它是有用處的,看了下一句就知道;
被歸類為”倍數”的數字(假設是M)之得分,是所有被歸類為”因數”且整除M的數字的個數。
所以舉例來說, 假設1,2,5被歸為”因數” ,3,4,6,7,8,9,10被歸為”倍數”, 總得分就是1+2+2+1+2+1+3=12。

閱讀全文 »

求$a^{b^c}\mod 880301(1\le a,b,c\le 10^9)$(880301是質數)。
有人寫了一個快速冪函數,不過爛了,求會出現問題的測資。

閱讀全文 »

給一棵樹,找出樹重心(若以該點為根,所有不含根節點的子樹中點數最大的那個數量要最小)。

閱讀全文 »

有$N$個參賽者,每個參賽者有攻擊指數$a_i$和防禦指數$d_i$,每個參賽者可以往左或往右挑戰(可以往左往右一起來),如果兩個指數中一個大於對手且另一個不小於對手(攻擊對攻擊,防禦對防禦),那就會勝利。
如果勝利就能繼續往更左或更有挑戰,一路到沒有對手為止。
求最多勝場的參賽者的勝場數。

閱讀全文 »

用途

考慮”ababcad”
那麼就可以分成7個這樣的字串:

1
2
3
4
5
6
7
0 - "ababcad"
1 - "babcad"
2 - "abcad"
3 - "bcad"
4 - "cad"
5 - "ad"
6 - "d"

然後再把這7個字串按照ASCII碼的順序排序,變成這樣:

1
2
3
4
5
6
7
0 - "ababcad"
2 - "abcad"
5 - "ad"
1 - "babcad"
3 - "bcad"
4 - "cad"
6 - "d"

所以順序就是0251346

閱讀全文 »

哈卡雜貨店裡,只有一排貨架,擺放著各式商品。然而裡頭的哈卡老闆有強迫症,他想要讓這個貨架的商品價格,從商品編號1~N,至少有K件商品價格是按序遞增的。哈卡是不會調降價錢的,哈卡也想把力氣省下來,哈卡決定以某件商品加一元的方式,直到貨架上的商品有至少K個按序遞增。
試問哈卡最少需要做幾次“加某件商品一元”這個動作,才能讓貨架上的N件商品至少有K件的價格按序遞增?
以上題敘的意思也就是:
給你一個長度為N的序列,你可以對任一項加一,求最少要加幾次才存在一個子序列長度為K,且值非嚴格遞增。(子序列是不用連續的)

閱讀全文 »