照定義間作一張表 測試這數字是不是Bisqaure Number
再來把Bisqaure Number作成一個vector
接下來去枚舉B(有一個上限)
然而A一定是一個Bisqaure Number 故從vector中枚舉
robertanders 發表在 痞客邦 留言(0) 人氣(96)
其實去年看過 只是沒有去解
解法是觀察他的數字跟長度(Interval)
譬如說10
則
10/1 = 10
10對上的是1( 10 / 10)
他情況就是
10 .... 1 1 1 1 1
再來i = 2
10 / 2 = 5 而他對上的是 10 / 5 = 2
因此情況是
... 5 ... 2 2 ...
最後是i = 3
10 / 3 = 3 而他對上的是10 / 3 = 3
注意 當他的counterpart相等時
只算一次
你可以把整個數列列出來觀察 就知道了 而且可以去證明sq使得N/i跟他的counterpart相等時 該數字只有一個
10 5 3 2 2 1 1 1 1 1
robertanders 發表在 痞客邦 留言(0) 人氣(70)
有點像燈泡題
你會知道每種功能最多用三次 否則跟沒用是一樣的(進入循環)
再來就是你會發現其實可以用一個Table去紀錄目前最佳解
有兩種作法 是BFS跟DFS
robertanders 發表在 痞客邦 留言(0) 人氣(150)
單純用DFS遞迴 然後按照他的限制條件(質數) 去做修剪就好了
http://nopaste.csie.org/4f6c4
robertanders 發表在 痞客邦 留言(0) 人氣(14)
一題很標準的位元運算
紀錄位置我用二進位
到最後再轉回來 比較省時間
http://nopaste.csie.org/59ab5
robertanders 發表在 痞客邦 留言(0) 人氣(40)
主要就是枚舉已經回文的情況 這樣長度9也只需要5000個檢查
然後在才就是用SIEVE找質數(也可用LINEAR SIEVE)但之前實測 10000這種小數快沒多少
所以我用SIEVE寫起來比較快一點
另外注意第一個數字絕對是奇數 所以長度9才是5000個
robertanders 發表在 痞客邦 留言(0) 人氣(47)
枚舉六種(四五事實上是一樣的算法)矩形排法
特別注意第六種的是不是valid的情況
robertanders 發表在 痞客邦 留言(0) 人氣(196)
很基本的一題動態規劃
採用的方法就是紀錄每一行該位置的最佳sum
接下來往下去拓展自己的最佳解
http://nopaste.csie.org/77897
robertanders 發表在 痞客邦 留言(0) 人氣(32)
USACO 銀牌題組
先利用線段樹
然後update一個區間 該區最高高度為bound的高度減一
不過要先排序
因為若一個區間 被另外一個區間包含 則該區間應該要在比較大的區間做完之後再作
robertanders 發表在 痞客邦 留言(0) 人氣(14)