zoukankan      html  css  js  c++  java
  • 3625

    3625

    题目描述

     

    Alice 和Bob 在玩游戏。

    有一棵NN个节点的树,Alice 和Bob 轮流操作,Alice 先手。一开始树上所有节点都没有颜色,Alice 每次会选一个没有被染色的节点并把这个节点染成红色(不能不选),Bob 每次会选一个没有被染色的节点并把这个节点染成蓝色(不能不选)。当有人操作不了时,游戏就终止了。

    Alice 的最终得分为红色连通块的个数,Bob 的最终的分为蓝色连通块的个数。设Alice 的得分为KAKA,Bob 的得分为KBKB,Alice 想让KA−KBKA−KB尽可能大,Bob 则想让KA−KBKA−KB尽可能小,假设两人都采取最优策略操作,那么KA−KBKA−KB会是多少。

    这里指的连通块为一个点集SS,满足集合内点的颜色相同,且每个点都能只经过SS内的点走到SS内的其他点,而且如果将任意u(u∉S)u(u∉S)加入SS,那么上述性质将不能被满足。


    solution

    首先我们考虑点已经染好了色。

    每次连边,如果连了两个颜色相同的点,就相当于给某个人-1

    连了两个颜色不同的点,就相当于两个人都-1

    那么我们记每个人选的点的入度,价值即为入度之差。

    可以发现,从小到大取应是最优的

  • 相关阅读:
    zabbix报警把特定的应用集发送给developer
    logstash 判断接口响应时间发送zabbix告警
    zabbix 对于logstash告警连续发邮件
    java使double保留两位小数的多方法
    Vagrant 和 docker
    golang binarySearch
    go channel实现
    5个jvm命令
    字符串匹配的Boyer-Moore算法
    Rabin-Karp 算法
  • 原文地址:https://www.cnblogs.com/liankewei/p/10358773.html
Copyright © 2011-2022 走看看