09 2019 档案
摘要:"题目" DP,及DP的优化。 这个题显然是一个DP,状态也比较好定义, 定义dp[i]表示双方总共取i个数时,所得到的最大差值。 然后可以得出状态转移方程,即 $dp[i]=max(data[j] dp[j 1]);j define N 1010010 define int long long u
阅读全文
摘要:"题目" 字符串模拟+并查集 建立两个并查集分别存放每个变量的每一位数的祖先,一个是1一个是2 考虑每个字母的每一位的数都是唯一的,先模拟,记录每一个变量的每一位。 一一映射到方程中去,最后将两个方程进行一一比较,然后合并并查集。中间判断是否出现一位既是1又是2的情况 最后统计自由元的个数cnt,高
阅读全文
摘要:"题目" 单调队列+阅读理解 简化题意。 找到一个最长的区间使得区间每个点的r要大于该点之前的点的l。 然后可以用单调队列维护单调递减的l。最后尺取法O(n)枚举所有区间并取最大值。 单调队列可以快速找某个位置左右两侧比他大(或小)的数的位置
阅读全文
摘要:"题目" 倍增 直接用图论算法必然解决不了这个问题,所以可以使用倍增算法优化。 我们遇到这个题该怎么想,首先,题目要求的值是1到n的最小代价。代价是路径的二进制中1的个数。 我们先预处理出每两点之间是否有边权和为(1 define N 1000111 define int long long usi
阅读全文
摘要:"题目" 加工调度问题: 对于每个物品无非有三种情况: 1. A所用时间 B所用时间。称其为二类 3. 和A、B相等的三种情况。称其为三类 把问题转化一下,则有一类是B正在占用的时间变多,二类是B占用的时间变少。 则肯定使B先变多后变少,才能使时间花费最少。 所以先一类后二类,然后再考虑每种情况内部
阅读全文
摘要:"题目" 任务调度贪心。 需要明确一点,任务调度贪心题,并不是简单地应用排序的贪心,而是动态的运用堆,使每次选择是都能保持局部最优,并更新状态使得下次更新答案可以取到正确的最小值。 这是A过程的解。 然后考虑B过程则需要从最后的物体开始操作,可以使时间最小,取每个物体最后完成的最大值。而且使每个物体
阅读全文
摘要:"题目" dfs+dfs+证明。 对于题目描述,可以发现KK其实就是大于等于原图中最大度数的最小奇数,因为如果原图度数最大为奇数,则最多颜色肯定为K,而如果原图最大度数为偶数,则KK又是奇数,则最多颜色也肯定小于等于KK。 然后可以dfsdfs染色,染色有两种方法,一种是枚举颜色,然后判断可行性并考
阅读全文