Game of CS

树上博弈,真难。。。。。。

https://blog.csdn.net/lr7682/article/details/100067840

Colon Principle:当树枝在一个顶点上时,用一个非树枝的杆的长度来替代,相当于他们的n异或之和。

#include<iostream>
#include<algorithm>
using namespace std;
const int max_n = 1100;
struct edge{
    int to, cost, next;
}E[max_n << 1];
int head[max_n];
int cnt = 1;
void add(int from, int to, int cost) {
    E[cnt].to = to;E[cnt].cost = cost;
    E[cnt].next = head[from];head[from] = cnt++;
}

int dfs(int u,int fa) {
    int ans = 0;
    for (int i = head[u];i;i = E[i].next) {
        edge& e = E[i];
        if (e.to == fa)continue;
        if (e.cost == 1)ans ^= dfs(e.to, u) + 1;
        else ans ^= dfs(e.to, u) ^ (e.cost & 1);
    }return ans;
}

int main() {
    ios::sync_with_stdio(0);
    int tcase;cin >> tcase;
    for (int t = 1;t <= tcase;++t) {
        fill(head, head + max_n, 0);cnt = 1;
        int n;cin >> n;
        for (int i = 1, u, v, w;i < n;++i) {
            cin >> u >> v >> w;++u;++v;
            add(u, v, w);add(v, u, w);
        }cout << "Case " << t << ": ";
        dfs(1, 1) > 0 ? cout << "Emily\n" : cout << "Jolly\n";
    }
}
kuangbin刷题题单详解(博弈论) 文章被收录于专栏

题单:https://vjudge.net/article/371

全部评论

相关推荐

07-10 11:08
门头沟学院 Java
投递京东等公司9个岗位
点赞 评论 收藏
分享
06-23 11:43
门头沟学院 Java
allin校招的烤冷...:我靠,今天中午我也是这个hr隔一个星期发消息给我。问的问题还是一模一样的😅
点赞 评论 收藏
分享
点赞 评论 收藏
分享
07-11 11:15
中南大学 Java
好可爱的hr姐姐哈哈哈哈
黑皮白袜臭脚体育生:兄弟们貂蝉在一起,吕布开了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务