56: Merge Intervals Given a collection of intervals, merge all overlapping intervals. Example 1: Example 2: 思路: 将区间的左端点按从小到大进行排序,然后观察相邻2个区间是否有公共部分,如果有 ...
分类:
其他好文 时间:
2020-01-30 21:10:18
阅读次数:
62
在家的又一场。 状态还是一般吧。 自己扔了30分。 T1 比较厉害的$dp$,考场上想到了,结果因为细节太多就没有写(真的是多)。 他其实就是个基环树dp。 我们首先断掉环上某个边,然后进行一次最大匹配的$dp$,然后这样要求这个边必然不选。 另一种情况是这个必然选,那么这条边终点的出边必然不选,再 ...
分类:
其他好文 时间:
2020-01-30 21:04:41
阅读次数:
69
"传送门" 题意: 给出$n$个区间,最终区间会合并为多个块。 现在要删除一个区间,问最终剩下的块最多是多少个。 思路: 将区间按左端点排序后,考虑维护区间的前后缀,然后枚举要删除的区间; 处理起来较麻烦,且维护的信息很多; 所以直接维护前缀信息,然后倒着来枚举删除区间,同时动态维护后缀; 统计答案 ...
分类:
其他好文 时间:
2020-01-29 23:33:37
阅读次数:
77
状态不好考的不行(x 还是在家里不够专注吧(? T1 一个简单的离散化+bfs 细节不少 一个区间直接把两个端点都离散进去就行了。 统计答案的时候按块统计答案。 T2 减枝的搜索。 不是特别难。 发现其实格子并不是很多。 被$K$给限制住了。 太多的都是0. 那么$n+m 1$的大小必然是小于等于1 ...
分类:
其他好文 时间:
2020-01-29 19:39:11
阅读次数:
59
给定一个二分图,其中左半部包含n1n1个点(编号1~n1n1),右半部包含n2n2个点(编号1~n2n2),二分图共包含m条边。 数据保证任意一条边的两个端点都不可能在同一部分中。 请你求出二分图的最大匹配数。 二分图的匹配:给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条边都不依附 ...
分类:
编程语言 时间:
2020-01-28 20:51:43
阅读次数:
64
题解 利用前缀和维护钻石的价值,然后枚举左端点,二分查找右端点。 代码 #include<bits/stdc++.h> using namespace std; int n,m,pre_sum[100005]; vector<int> ans; void check(int i,int &j,int ...
分类:
其他好文 时间:
2020-01-28 15:33:52
阅读次数:
65
扫描线 先跑一个扫描线 统计不删除的答案 然后考虑对于每个线段计算删除的答案 思考一下什么情况下删除线段答案增加 当扫描线扫到了一个右端点 并且set里只有一条线段 这时set里的线段贡献+1 这里比较好思考 还要注意如果当前线段只有一条 那么答案-1 一条线段右端点也可能造成贡献 但是不用特别计算 ...
分类:
其他好文 时间:
2020-01-28 09:29:39
阅读次数:
78
Codeforces Round 615(Div.3)解题报告 A. Collecting Coins 注意$n$可能不够用的情况。 E. Obtain a Permutation 题意也就是用最少的操作次数使得矩阵每个元素$a(i,j)=(i 1)m+j$。 分析一下的话可以发现,每一列其实是独立 ...
分类:
其他好文 时间:
2020-01-27 21:57:28
阅读次数:
82
用线段树处理颜色段数 记录区间内的颜色段数,区间右端点的颜色,区间右端点的颜色. 树链剖分 先是定义存图 然后是每个点的深度,大小,重儿子,父亲. 然后是每个点所在的重链的顶点的编号,dfs顺序和点编号的映射,tot记录顺序的编号. 第一次dfs,确定点之间的父子关系,大小,深度,重儿子: 第二次d ...
分类:
其他好文 时间:
2020-01-26 23:52:54
阅读次数:
74
题意 给出$n$个垂直线段,相邻两线段之间的距离是$1$,选出一个区间,使得区间两端线段中较短的那根长度乘区间长度最大。 思路 想法1:枚举没对线段作为区间端点的情况。时间复杂度$O(n^2)$,太暴力。 想法2:双指针法。 思想依据 :因为两段之间形成的区域总会受到其中较短的那条长度的限制,此外, ...
分类:
其他好文 时间:
2020-01-26 23:52:24
阅读次数:
55