摘要:
综合素质评选,就是耻辱 知耻而后勇。 更高处见,和这些恶心人和事再也不见 #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <queue> #include <cmath> # 阅读全文
摘要:
开始系统跟着刘汝佳老师的书并行刷题。 DP问题似乎很多问题是会将时间这类有序的量作为状态一个坐标,这个思路还是蛮惊奇的,建立在题目中时间是整数,并且数量级可以接受的情况。 #include <cstdio> #include <iostream> #include <algorithm> #incl 阅读全文
摘要:
好题 刚开学,很久没做,实在没有头绪,参考了别人的题解,就当找状态吧(惭愧) 题意:祖玛 思路: 最基础的,肯定将原数组进行处理,转化为关于线段的数组。 很容易想到的DP就是,考虑一段长度,问题是状态转移方程,需要先找出合适而有限无后效的状态,常规思路就是取出其中一个,不过这样做的问题有一个,就是取 阅读全文
摘要:
WA了十几发,我是five实锤了。。。 DP部分没有问题,坑点有几个 关于设计DP数组时,初始化最小值设置为INF,问题是这个INF不能太小,最起码要大于6400的平方,但是也不可以太大,我最开始下意识的设置为0x7f7f7f7f,后面才发现这个数太大以至于出现了int溢出 关于四舍五入小数,此前习 阅读全文
摘要:
DP试水题,参考刘汝佳《算法艺术与信息学竞赛》,书中精髓也点出来了,寻找合适的状态(满足最优子结构,无后效性),同时要编写合适的状态转移方程,这时候写出来的朴素的算法一般都是指数时间复杂度的,这时候再利用DP的两个方法优化 #include <cstdio> #include <iostream> 阅读全文
摘要:
线段树入门题,找下手感 #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <queue> using namespace std; const int maxn= 2e5+5; 阅读全文
摘要:
线段树延迟标记的具体应用,是比较简单的区间加和修改 #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #include <queue> using namespace std; const in 阅读全文
摘要:
线段树习题,利用了延迟标记,与普通线段树频发查询不同,这里只进行了一次查询,所以事实上只是利用了线段树的结构和延迟标记的思想 几个注意点: 要注意给出的n是线段涂色的次数,而非线段总长度,线段树的区间一直是[0, 8000] 因为我是利用了map方便最终的计数,需要引入全局变量fom来记录上一个节点 阅读全文
摘要:
关于逆序数和堆的问题,这里很巧妙地从全局切入,即,每一次即将发生的超车,必定是超过他前面相邻的车(虽然具体到每一辆车,他不一定超过的就是他面前的车,但是要从全局考虑)。 之后维护堆有一点注意,因为堆不可以按照索引任意修改堆中元素,我们干脆就在堆中保留那些陈旧的节点,取出来的时候出现问题直接丢掉,而是 阅读全文
摘要:
比食物链那道题还要简单,简单的带权并查集应用,不过要注意只有两个人的特殊情况。 #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> using namespace std; const char 阅读全文