https://zoj.pintia.cn/problem-sets/91827364500/problems/91827368971 需要判断凸包,学了再来补; 先说dp部分, dp[ i ][ j ]表示划分起点为i,终点为j的凸多边形所需的花费; dp [ i ] [ j ] =min ( d ...
分类:
其他好文 时间:
2020-07-08 01:28:39
阅读次数:
73
题目链接:https://ac.nowcoder.com/acm/problem/16564 题目大意: 有n天可以租教室,给出每天可以租用的教室数量,有m次询问,找出最小值判断能不能完成租借。思路:线段树求区间最小值。(模板) #include <cstdio> #include <iostrea ...
分类:
其他好文 时间:
2020-07-08 01:10:26
阅读次数:
83
用线段树维护区间剩余的最大值,这样可以辅助二分,越左越好 对于用完k堆的,直接将他的值变为0即可 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=6e5+10; struct node{ i ...
分类:
其他好文 时间:
2020-07-07 23:39:52
阅读次数:
91
做了一天 Global 9 做吐了,全是构造属实有毒啊。 考虑在低于 \(n^3\) 的复杂度做出来这个东西: 考虑求所有区间。我们可以将其拆成值域 \([1,\text{mid}]\) 和 \([\text{mid}+1, r]\) 两个序列,然后对每个区间将小于等于 \(mid\) 和大于 \( ...
分类:
其他好文 时间:
2020-07-07 23:22:45
阅读次数:
76
(grow_range_start <![CDATA[ < ]]> #{growRangeStart} and grow_range_start <![CDATA[ >= ]]> #{growRangeStart})or (grow_range_start <![CDATA[ < ]]> #{gro ...
分类:
数据库 时间:
2020-07-07 20:32:35
阅读次数:
155
方法一:滑动窗口 class Solution { public List<Integer> partitionLabels(String s) { List<Integer> res = new ArrayList<>(); int[] arr = new int[128]; for(char c ...
分类:
其他好文 时间:
2020-07-07 18:10:25
阅读次数:
53
链接:https://leetcode-cn.com/problems/insert-interval/ 代码 class Solution { public: vector<vector<int>> insert(vector<vector<int>>& a, vector<int>& b) { ...
分类:
其他好文 时间:
2020-07-07 17:43:06
阅读次数:
56
传送门 和我上一篇博客的思路很像,区别在于每一个任务的$s_i,e_i$不一样,这题的$e_i - s_i$很大,所以无法直接全部进行建立 那么考虑对其进行离散化,也就是或对于区间[l,r]的作为一个结点,然后按照前面的方法去建立 对于第一层边的建立,容量就是烤肉数 * 单个烤肉的时间 第二层边的建 ...
分类:
其他好文 时间:
2020-07-07 15:00:03
阅读次数:
68
区间dp D - Flood Fill 题目大意: 如果[l,r] 这个连续的区间的数都相等,则说明这个是一个连通块,给你n个数,每一个数都代表这个位置的颜色,首先你要选取第一个操作的位置,之后你可以对这个位置所在的连通块进行改变颜色,可以改变成任意颜色。问最少多少次操作可以让这n个数变成一个颜色。 ...
分类:
其他好文 时间:
2020-07-06 18:12:17
阅读次数:
59
树状数组的一些基本操作。 树状数组支持单点修改和查询区间和的操作,但和线段树不同,它不支持区间修改操作(有些题目可以将区间修改转化为单点修改,有些则不可以)。下面介绍树状数组的预处理和基本操作。 1.求lowbit(n) 上一篇博客介绍了lowbit的定义和使用定义的基本求法。但是依据定义求lowb ...
分类:
编程语言 时间:
2020-07-06 11:14:58
阅读次数:
60