09 2019 档案
摘要:"E. Kamil and Making a Stream" 参考: "Codeforces Round 588 (Div. 2) E. Kamil and Making a Stream 求树上同一直径上两两节点之间gcd的和" 思路:求的就是 之间所有最短路的 之和。 用一个 来储存每一个结点可
阅读全文
摘要:"D. Marcin and Training Camp" 参考: "D. Marcin and Training Camp" 思路:首先先确定最大成员的,因为不能够某个成员 认为自己比其他所有成员都厉害,所以必须要有一个人 来压制他。压制有两种方法:①跟他一样大 ②${a_i}
阅读全文
摘要:"C Anadi and Domino" 参考: "Anadi and Domino" 思路:分为两种情况: ①`n ② ,在这种情况下肯定会出现某两个点 和`b a`和 都有一条边,那么,只能够在其中一条边上放多米诺牌,而另外一边不可以。那么我们就可以将它分成两部分,一个是连接 的边,一个是连接
阅读全文
摘要:"C White Sheet" 思路:先看代码,分成了四个条件。第一个和第二个表示的都是当白矩形存在某个黑矩形内部的情况。 另外就是:白矩形位于两个黑矩形的并集区域。 即可分为两种情况,一种是白矩形位于竖的区域(条件三),上图: 那么黄色区域就是判断范围 另一种是横的区域(条件四): 黄色区域即判断
阅读全文
摘要:"G1 Into Blocks (easy version)" 参考: "Codeforces Round 584 Dasha Code Championship Elimination Round (rated, open for everyone, Div. 1 + Div. 2) G1. In
阅读全文
摘要: "D. Cow and Snacks" 参考: "Codeforces 1209D. Cow and Snacks" 思路:利用并查集,构建一个生成树,然后树的边数就是能够开心的客人的人数。用一个条件 (我在代码里反了一下),来统计某一种味道的菜是否已经被吃掉,如果等于,则证明已经被吃掉。 另外
阅读全文
摘要:"C Paint the Digits" 思路:这道题就只需要利用单调栈,将整个数组扫一遍,求得的最后的栈内元素(要求全部小于非栈内元素)的颜色为1,其余为2 那么怎么实现呢?求最后的栈内元素(要求全部小于非栈内元素)的方法:用一个变量记录下最小的被交换的栈元素(这里需要将由于元素相等而交换的情况派
阅读全文
摘要:"Path" 参考: "[2019杭电多校第一场\][hdu6582]Path(最短路&&最小割)" 思路:这道题需要用到最短路和最小割。首先需要用最短路,找到最短的路径,然后再利用 这个条件,重新建图,在重新建的图当中,保证了所有的路径长度都是最短路,那么便可以进行最小割的操作,最小割即最大流,所
阅读全文
摘要:最大流=最小割 参考: "【转载】最小割" 可以证得最大流的值即为最小割 最大流可由 算法求得
阅读全文
摘要:"D. 站军姿" 参考: "随机在圆上生成n个点,这n个点在同一半圆的概率是多少?" 思路:直接利用公式,随机在圆上生成n个点,这n个点在同一半圆的概率是 ,求逆元的时候直接用费马小定理即可 代码: cpp // Created by CAD on 2019/9
阅读全文
摘要:"Fibonacci again and again" 参考: "SG函数和SG定理【详解】" 思路:这是比较简单的SG定理的运用,SG定理—— 游戏和的SG函数等于各个游戏SG函数的Nim和 如果一个位置 的SG值为0,那么这个点就为必败点 ,否则就是必胜点 必败点:用N表示 必胜点:用P表示 对
阅读全文
摘要:巴比博弈 参考: "博弈论及算法实现" 只有一堆 个物品,两个人从轮流中取出 个,最后取光者胜。 考虑到 若 那么 第一个人不论如何取都不能取胜。 进一步我们发现 若 ,先取者拿走 个,那么后者再拿 个 ; 先取者再拿走 个 最后总能造成 剩下 的局面。 因此,此时先手有必赢策略。 相对应的,若 那
阅读全文
摘要:"火烧赤壁" 隔了一天再来理解就想对来说舒服多了,也不知道是不是因为昨天太忙了没有专心.... 参考: "火烧赤壁 题解" "火烧赤壁题解" 思路:首先必须要明白一点,这道题需要将船只的位置标记出来,但是看到数据为 就可以知道,很明显直接用一个数组来储存是不可能的。但是因为数据的个数不多,所以我们就
阅读全文