06 2020 档案

摘要:Maximum Islands 思路:预处理‘L’周围包围‘W’。‘L’独自成为岛屿为最优,我们‘L’,‘W’交替处理的图((x+y)%2为同一个集合),分为两个集合,相邻的‘L’和‘W’有边,同一个集合没边,变成二分图的最大独立集问题,得出最多的互不相邻的点就是最大岛屿数量。因为我们匹配的出发点是 阅读全文
posted @ 2020-06-30 16:07 SummerMingQAQ 阅读(182) 评论(0) 推荐(0) 编辑
摘要:前置技能:二分图匹配和匈牙利算法的了解。 (最小点覆盖) 概念:用最少的点,让每条边都至少和其中一个点关联 性质:最小点覆盖 = 最大匹配 说明:在二分图中,求出了最大匹配后,容易得出,合理分配最大匹配的点去覆盖,未匹配的点一定与覆盖的的某个点有边。 (最小边覆盖) 概念:用尽量少的不相交简单路径覆 阅读全文
posted @ 2020-06-28 16:45 SummerMingQAQ 阅读(543) 评论(0) 推荐(0) 编辑
摘要:Girls and Boys 思路:二分图中,最大独立集 = 顶点数 - 最小点覆盖(最大匹配),这里没有说明明确的二分图,所以匹配出的是二倍的最大匹配(男配女,女配男)。 1 #include <iostream> 2 #include <algorithm> 3 #include <cstdio 阅读全文
posted @ 2020-06-28 16:28 SummerMingQAQ 阅读(246) 评论(0) 推荐(0) 编辑
摘要:Buggy Robot 思路:dp[inx][x][y],表示用了前inx个指令后的最小费用。 对于一个指令,我们可以选择不走或者走,其他的我们可以添加四个方向的指令与使用过指令后的dp来比较。 1 #include <iostream> 2 #include <algorithm> 3 #incl 阅读全文
posted @ 2020-06-24 15:29 SummerMingQAQ 阅读(175) 评论(0) 推荐(0) 编辑
摘要:1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 5 using namespace std; 6 7 const int N = 110; 8 int f[N][N]; 9 10 //核心想法://i到达j经过前k 阅读全文
posted @ 2020-06-16 23:48 SummerMingQAQ 阅读(282) 评论(0) 推荐(0) 编辑
摘要:1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <queue> 5 6 using namespace std; 7 8 #define LL long long 9 #define pb pus 阅读全文
posted @ 2020-06-16 23:07 SummerMingQAQ 阅读(318) 评论(0) 推荐(0) 编辑
摘要:/* mi之间互质 同余方程组 : 设正整数m1.m2.mk两两互素,则方程组 x ≡ a1 (mod m1) x ≡ a2 (mod m2) x ≡ a3 (mod m3) . . x ≡ ak (mod mk) 有整数解, 解为 x ≡ (a1 * M1 * 1/M1 + a2 * M2 * 1 阅读全文
posted @ 2020-06-12 20:47 SummerMingQAQ 阅读(165) 评论(0) 推荐(0) 编辑
摘要:1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <vector> 5 6 using namespace std; 7 8 #define ll long long 9 10 const int 阅读全文
posted @ 2020-06-12 11:11 SummerMingQAQ 阅读(191) 评论(0) 推荐(0) 编辑
摘要:G Gaming with Mia 思路:我们能找出某些情况: -1 1 -1 -1 1 1 -1 -1 1 1 1 -1 -1 1 ... 1 -1 我们发现如果大于5个数相乘,则它一定可以分解成其他更优的情况相乘再相加。(当然如果出现0,也可以最极限情况5个数相乘) 时间复杂度就是:O(1e6* 阅读全文
posted @ 2020-06-10 20:02 SummerMingQAQ 阅读(362) 评论(0) 推荐(0) 编辑
摘要:1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <vector> 5 #include <queue> 6 using namespace std; 7 #define pb push_back 阅读全文
posted @ 2020-06-05 19:46 SummerMingQAQ 阅读(244) 评论(0) 推荐(0) 编辑
摘要:J. Factorial Products 思路:根据对数性质:log(a*b) = log(a) + log(b),使得阶乘相乘转变为前缀和累加,处理了数据过大无法存储的问题。 #include <iostream> #include <cstdio> #include <algorithm> # 阅读全文
posted @ 2020-06-04 22:57 SummerMingQAQ 阅读(210) 评论(0) 推荐(0) 编辑
摘要:边双联通分量:在一个无向图中,存在一个极大子图,删除任意一条边之后仍然是一个无向图。 桥:在无向图中,存在某条边,删除该边之后,该无向图将会被分割成两个无向图。 1 #include <iostream> 2 #include <vector> 3 #include <cstdio> 4 #incl 阅读全文
posted @ 2020-06-03 20:01 SummerMingQAQ 阅读(302) 评论(0) 推荐(0) 编辑
摘要:点双连通分量:在一个无向图中,存在一个极大子图,删除任意一个节点之后该图仍然是一个连通图。 割点:在一个无向图中,存在一个节点,删除这个节点之后,该无向图会被分为若干个连通图(个数大于一),则该点为割点。 #include <iostream> #include <vector> #include 阅读全文
posted @ 2020-06-02 18:02 SummerMingQAQ 阅读(350) 评论(0) 推荐(0) 编辑
摘要:强连通:在有向图中,如果Vx能到达Vy,且Vy也能到达Vx,说明它们两个点强连通。 强连通分量:在有向图中,存在一个极大子图,该子图中任意两点都是强连通。 #include <iostream> #include <vector> #include <cstdio> #include <cstrin 阅读全文
posted @ 2020-06-02 10:55 SummerMingQAQ 阅读(243) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示