HDU 5299 Circles Game(樹的刪邊遊戲)
題目連結:傳送門
題意:
給定你n個圓環,每兩個圓要麼包含要麼相離,刪除一個圓也要刪除它包含的圓,最後不能刪的人輸。
分析:
樹的刪邊遊戲規則如下:
l. 給出一個有 N 個點的樹,有一個點作為樹的根節點。
2. 遊戲者輪流從樹中刪去邊,刪去一條邊後,不與根節點相連的部分將被移走。
3. 誰無路可走誰輸。
我們有如下定理:
[定理]
葉子節點的 SG 值為 0;
中間節點的 SG 值為它的所有子節點的 SG 值加 1 後的異或和。
然後這道題目就根據包含關係建一顆樹,剩下的就是一個樹的刪邊遊戲。
程式碼如下:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
const int maxn = 20010;
vector<int > vc[maxn];
struct cir{
int x,y,r;
bool operator <(const cir &tmp)const{
return r<tmp.r;
}
int dis(const cir &tmp){
return (x-tmp.x)*(x-tmp.x)+(y-tmp.y)*(y-tmp.y);
}
}c[maxn];
void init(){
for(int i=0;i<maxn;i++)
vc[i].clear();
}
int dfs(int u){
int ret = 0;
for(int i=0;i<vc[u].size();i++){
int v = vc[u][i];
ret^=dfs(v)+1;
}
return ret;
}
int main()
{
int t,n;
scanf("%d",&t);
while(t--){
init();
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d%d%d",&c[i].x,&c[i].y,&c[i].r);
}
sort(c,c+n);
for(int i=0;i<n;i++){
bool tag = 0;
for(int j=i+1;j<n;j++){
if(c[i].dis(c[j])<=(c[j].r-c[i].r)*(c[j].r-c[i].r)){
tag=1;
vc[j].push_back(i);
break;
}
}
if(!tag)
vc[n].push_back(i);
}
int ans = dfs(n);
if(!ans) puts("Bob");
else puts("Alice");
}
return 0;
}
相關文章
- 博弈論進階之樹的刪邊遊戲與無向圖的刪邊遊戲遊戲
- HDU 4944 FSF’s game(計數遊戲)GAM遊戲
- HDU 3074 Multiply game(線段樹 單點更新)GAM
- HDU 1729 Stone GameGAM
- Switch Game HDU - 2053GAM
- HDU1729 Stone Game (SG函式)GAM函式
- 【博弈論】HDU - 7216 Triangle GameGAM
- HDU 4326Game(比較難理解的概率dp)GAM
- hdu4975 網路流及‘刪邊法’判是否為唯一流
- hdu 3874 樹狀陣列陣列
- 線段樹 transformation——hdu 4578ORM
- java邊遍歷邊刪除的問題Java
- HDU 1846-Brave Game(巴什博弈-SG函式)GAM函式
- hdu 1754 I Hate It (線段樹)
- hdu 5147 樹狀陣列陣列
- hdu 4836 The Query on the Tree(線段樹or樹狀陣列)陣列
- HDU 1556 Color the ball(線段樹|樹狀陣列)陣列
- C. Black Circles
- Transformation HDU - 4578線段樹綜合操作ORM
- hdu 1754 【線段樹/RMQ】I Hate ItMQ
- hdu 3973 字串hash+線段樹字串
- HDU 5973-Game of Taking Stones(威佐夫博弈-JAVA BigDecimal)GAMJavaDecimal
- HDU 5469 Antonidas(樹上的字串匹配/搜尋)字串匹配
- 55-jump Game 跳躍遊戲GAM遊戲
- HDU 1754 I Hate It 線段樹入門
- HDU 5326 Work (基礎樹形dp)
- hdu 4123 樹形DP+RMQMQ
- Facebook Instant Game 小遊戲上傳的遊戲包有大小限制GAM遊戲
- 邊學邊做的第一個Unity小遊戲Unity遊戲
- [CareerCup] 17.5 Game of Master Mind 猜字遊戲GAMAST遊戲
- 《遊戲設計模式》(Game Programming Patterns)遊戲設計設計模式GAM
- [CareerCup] 8.8 Othello Game 黑白棋遊戲GAM遊戲
- HDU 4550卡片遊戲(貪心)遊戲
- hdu4325 樹狀陣列+離散化陣列
- hdu4288 離線處理線段樹
- hdu 4368 樹狀陣列 離線維護陣列
- HDU6035-Colorful Tree-虛樹思想
- json結構體裡邊的刪除JSON結構體