參考:大牛blog
思路:因為是環,所以可以複製一下圖,先判斷一下和他是不是和與他相鄰的8個之一的乙個障礙使得構成了乙個環,環就是乙個連通,用並查集維護即可;
如果沒有就ans++,然後並把這個點加入。
大致意思就是這樣。
#include #include #include #include #include #include #include #include using namespace std;const int maxn=3000*3000*2+100;
const int dx[8]=;
const int dy[8]=;
int n, r, c, ti;
int ans;
int fa[maxn];
bool vis[3010][6010];
int mark[maxn];
int find(int cur)
void union(int u, int v)
bool check(int &x1, int &y1)
void merge(int x, int y)
}bool get_list(int x, int y, int id)
return true;
}void solve()
}int main()
Codeforces 437D 貪心 並查集
這個題目讓我想起了上次在湘潭賽的那道跪死了的題。也是最值問題,這個也是,有n個動物園 每個都有權值 然後被m條路徑相連線,保證圖是連通的,然後求所有的p i j 之和.i,j為任意兩個zoo,pij就為i到j路上遇到的包括i j在內的最小權值的zoo 然後我就焦頭爛額了一下,這個明顯就是看某個最小值...
Codeforces325 B 二分搜尋
題目 b.stadium and games 分析 問題可以轉化為下面的等式求解問題 由於n在10 18範圍內,所以k的範圍是從0到63即可,這樣就可以列舉k,二分m,然後所有符合條件的 就是答案了。注意這裡資料範圍的處理,不注意的話就會溢位的。include include include inc...
Codeforces 703D 樹狀陣列
codeforces 703d 題意 給1e6長度的區間,每個單位代表乙個數。給1e6個詢問,每次問區間內出現次數為偶數次的數異或和。思路 賽中的時候想莫隊水過去,結果pretest都沒過233 正解是樹狀陣列。首先假設是奇數次的話,就是乙個簡單字首和。現在偶數次,有乙個處理技巧就是記錄這個區間出現...