UVa11743

題目

http://domen111.github.io/UVa-Easy-Viewer/?11743
定義一組合法的信用卡卡號可以透過以下步驟檢查

  1. 將偶數位置上的數字乘2
  2. 將剛剛所得到的數字中每一個位數數值加總
  3. 將信用卡號中奇數位數的數字作加總
  4. 將步驟2、3兩數相加
  5. 判斷個位數是否為0,0為合法卡號,非零為非法卡號

給一組信用卡卡號,求是否為合法卡號

閱讀全文 »

Zerojudge c575

題敘

https://zerojudge.tw/ShowProblem?problemid=c575
一個一維座標上有 $n$ 個點 $p$,在座標上最多放置 $k$ 個基地台
每個基地台可以隨意放在座標點上任一點(不限於整數座標),若點包含於某基地台的半徑 $r$ 內則可接收到訊號
求基地台的最小直徑,使得所有標記的點都能接收到訊號

想法

點可以說幾乎無限多個,顯然暴力去找基地台可以放在哪裡是不合理的
但是我們知道基地台可以隨便放,也知道需要包含在那些座標點上
我們可以先將所有座標點由小到大排序
很快可以知道基地台最大直徑為$p_n-p_1$,最小為1(一個點座標長度)
二分搜基地台的直徑 $R$ ,每次檢查 $R$ 是否符合

閱讀全文 »

Zerojudge c292

題敘

https://zerojudge.tw/ShowProblem?problemid=c292
給一個二維正方形陣列,邊長為奇數,求從中心點開始向指定方向開始走(上/下/左/右),繞圈走過的元素依照走訪順序輸出

想法

模擬一遍即可
我的作法是記錄現在走訪到哪裡,接下來要往哪個方向走多少距離
將走過點的值儲存到一個陣列中
需要留意在最後一次走訪時前進距離會少1

閱讀全文 »