米哈游 8.3 笔试
#米哈游# #笔试# #米哈游笔试#
经典做C++的选择题,记得暑假实习投递的时候也是。。。。。。。
算法题
100 暴力, 花了5min才发现是改long
100 经典背包,加一个互斥条件的可选数组直接dfs就行
0 有思路,没时间了
第三题思路:先找环,如果X在环上直接返回,如果不在环上,找连接的环上的点,dfs到X然后看它远离环方向的节点数量。直接%2就知道谁赢了。但是这个找连接点和找节点数量的函数没写完。。。。有没有大佬来解答一下
经典做C++的选择题,记得暑假实习投递的时候也是。。。。。。。
算法题
100 暴力, 花了5min才发现是改long
100 经典背包,加一个互斥条件的可选数组直接dfs就行
0 有思路,没时间了
第三题思路:先找环,如果X在环上直接返回,如果不在环上,找连接的环上的点,dfs到X然后看它远离环方向的节点数量。直接%2就知道谁赢了。但是这个找连接点和找节点数量的函数没写完。。。。有没有大佬来解答一下
全部评论
第三题我也是这么想的,看微信公众号其他人是使用拓扑排序解的!
拓扑排序+GTO博弈论。
所谓的基环树指的是:在一棵树的基础上加上一个环。
以后大家看到这种:每个人都会按照最优策略进行选择,最后判断谁会获胜。这种字眼的时候,基本就可以确定是一个GTO(博弈论)的题目。基本的做题思路就是找到一个规律可以直接得出结论的。
对于这道题,有一个显而易见的结论,如果x在环中,那么无论如何删点都不可能删的掉,因此必然是Draw。
如果点不在环中呢?
我们可以考虑在删除x点之前(包括x),有多少个节点是可以删除的?假设这个值是cnt。
如果cnt是偶数的话,那么Xiaoyo作为先选取的一方,一定是无法删除这个点的。因为双方的操作是对称的。
反之,则是Pyrmont获胜。
因此大题思路与拓扑排序类似,不断地将度数为1的节点加入队列,记录在删除x节点之前最多可以访问的节点数(包括x节点)。最后判断x的奇偶性即可。
需要注意的是
如果x节点是在环中的,那么我们永远无法遍历到这个节点,此时必然是Draw。
如果x节点的度数初始值就是1,那么此时Xiaoyo获胜。
C++
相关推荐
点赞 评论 收藏
分享