Problem
用三個點表示一弧,求一點到一弧最段距離。
Sample Input
|
|
Sample Output
|
|
Solution
先拉 AC 一線,計算 ABC 的外心 O,判斷 ABC 張角是否大於 180 度,利用 O、B 是否在 AC 同側或異側。
接著,分配兩側開始討論,參考方式如上圖。有三角形內部問題等 …
誤差問題仍然很嚴重,用三分解法肯定過不去,倒不如說卡在要怎麼三分參數。
|
|
用三個點表示一弧,求一點到一弧最段距離。
|
|
|
|
先拉 AC 一線,計算 ABC 的外心 O,判斷 ABC 張角是否大於 180 度,利用 O、B 是否在 AC 同側或異側。
接著,分配兩側開始討論,參考方式如上圖。有三角形內部問題等 …
誤差問題仍然很嚴重,用三分解法肯定過不去,倒不如說卡在要怎麼三分參數。
|
|
根據第一行指令,在一個二元樹中走訪節點,最後停留的位置交給第二行繼續執行。然而第二行的每一個指令可以選擇忽略或者執行,最後停留的節點共計有多少個。
|
|
|
|
一開始會發現最後停留的點,下次可能抵達的位置為其左子樹節點個數 1、右子樹節點個樹 1。
定義:可能在下一個走到的左子節點個數 l、右子節點個數 r。
當選擇往左前往還沒有走過的左子節點時,所有左子節點各會增加可能未走到的左子節點、右子節點,而已經消耗 l 個未走過的左節點,現在增加 l 個未走過的左節點、l 個未走過的右節點。反之,走到右子節點也是。
如果選擇往上時,只會根據一開始停留點到 root 之間的距離有關。
|
|
找到所有組合數並且 mod M 的結果,其中 M 可以拆成數個小於 150 的質因數分解。
|
|
|
|
其中 M 可以拆成數個小於 150 的質因數分解。
這句話可說是暗藏玄機,由於測資組數太多,對於每次 mod 情況都建表太慢。不然這題單純套用硬幣問題就能計算個數收尾。
因此,先將 M 進行質因數分解 $M = \prod_{i} p_{i}^{x_{i}}$,之後用中國餘式定理求解。
由於質因數的個數可能大於 1,那其實也可以發現 $\text{count mod } p_{i}$ 和 $\text{count mod } p_{i - 1}$ 之間的關係,$\text{count mod } p_{i-1} = \text{count mod } p_{i} \text{ mod } p_{i-1}$。
這裡可以 O(1) 算出來,而在 150 以內總共有 35 個質數,分別對這些質數計算出 mod 盡可能大,$p_{i} \le 10^{15}$ 為準。
|
|
給一張圖,從起點 c 出發,每一條邊最多經過一次,最後回到 c。中間可以經過哪些節點。
|
|
|
|
窮舉所有可能做最大流,從起點 c 到指定的點 v,如果存在最大流 maxflow >= 2 表示至少兩條,因此可以拉成一個環,表示 v 可以在環上。
|
|
找一個最大箏形於給定的地圖中。
|
|
|
|
其實很像找一個最大正方形,可以參考 NPSC 營地的作法。而要求箏形事實上就是將地圖翻轉 45 度角。
參考 UVa 10593 - Kites 的做法可以完成。
以前寫的 代碼 真是萌哒。
|
|
上述總共有四種指令架構,分別輸出前三個指令的 X 總和值。其中第四個為迴圈架構。
|
|
|
|
由於輸入沒有迴圈,差點忘了有 repeat 指令。遞迴讀進輸入即可。
|
|
將 S(1) … S(n) 加總後 mod 1000000009 輸出。
|
|
|
|
特別發現到 1000000009 是質數,對於任意一個數字都存在乘法反元素,那麼將總和定義為
$$(1 + 2 A[0])(1 + 2 A[1])(1 + 2 A[2]) ... (1 + 2 A[n])/2 \text{ mod } 1000000009$$/2 部分利用乘上 2 在 mod 1000000009 下的反元素即可。
|
|
類似 UVa 10304 - Optimal Binary Search Tree,給每個節點的拜訪頻率,建造一個二元樹,使得詢問次數最小化。
|
|
|
|
套用四邊形不等式進行優化。
|
|
類似 UVa 10720 - Graph Construction,給一個無向圖的每一個節點 degree,請問是否能構成圖。
|
|
|
|
使用公式加二分。
|
|
給一個序列 A,請問在 A[l:r] 中 A[i] 不被 A[j] 整除的個數為何。
|
|
|
|
首先先貪心 A[i],找到左側最鄰近的因數、右側最鄰近的因數的位置找出 L[i], R[i]。
以下使用 binary indexed tree 進行區域操作。
然後對於詢問 [l, r] 事先讀進來,加入掃描線算法,確保能夠詢問 [l, r] 時,找尋 BIT[r] 的值為何。
掃描時,當我們遇到某個因數所展開的區間 [L[i], R[i]] 的左端點
因此資料結構要維護
|
|