Problem
Limits
TimeLimit(ms):3000
MemoryLimit(MB):256
M∈[1,105]
Xi∈[?109,109]
Yi∈[0,109]
Look up Original Problem From here
Solution
一個點可取,當且僅當,把它取了之後,上面的點不會失去平衡而掉下來。
開兩個優先隊列q1,q2。q1的頂元素最大,q2的頂元素最小,起初把所有可取的點都放入q1,q2,然後,輪流從q1,q2取點,如果訪問過了就取下一個,取出點後,判斷這個點是否可取,如果不可取則取下一個…每次取出的點,判斷(Xi?1,Yi?1),(Xi,Yi?1),(Xi+1,Yi?1)這三個點是否可取,如果可取,則加入q1,q2。這樣就可以得到M進制數。
Complexity
TimeComplexity:O(M×log2M)
MemoryComplexity:O(M)
My Code
//Hello. I'm Peter.
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include