SD集训总结

在SD呆了8天,补了补基础(和重学没有什么区别

DAY1-DAY4:

学了搜索,分治。

搜索还比较熟练,但分治有些时候调试要花一些时间,二分的时候很容易写死。

除了DAY1的逆序对一开始有点蒙(后面搞懂了),都还比较好。

考试也算是渐入佳进吧,DAY4的大考上午190,下午180,拿了第2.(orz xlh orz)

写万能头是会爆零的——

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cstring>
//常用的五个头文件
#include<queue>
#include<stack>
//栈和队列

DAY5-DAY8:

学了动规。

这个是真的以前学了和没学一样。

不过把很多以前遗留下来的问题解决了,还学习了两个新的背包(二维费用背包和分组背包)

比如背包问题的一维优化为什么要倒推,

考试也还可以吧,有些时候会发挥不稳定。(SBCENA

最后一天考试上午觉得炸了,只会打T1,T2,

结果骗分骗到285(qwq)

下午自我感觉良好,1个小时解决战斗,自以为能AK,

结果130(qwq)

十分离谱

一些好题:

1.题目排版:

给出一个字符串,每次可以交换相邻的两个字符,求变成反串最少的操作次数。

谁能想到这是一个逆序对呢?

给每个字母标上号,找到反串中每一个字母在正串中第一次出现的位置(不重复)

然后求这个数列的逆序对就行了。

 

2.雨林:

现在,你来到了⾬林的⼊⼝。

⾬林的俯视图是⼀个矩形,建⽴平直⻆坐标系后,⾬林的⼊⼝位于坐标(0,0)处,出⼝位于坐标(N,M)处。你可以在平⾯上的这个矩形内任意⾛动。因为你相对于⾬林很⼩,可以把你视为⼀个质点.然⽽,不幸的是,⾬林下起了⾬,⼀共有处落⾬区域,每⼀处⾬的落⾬区域在平⾯上都是⼀个圆 形,都有着⾃⼰的半径。这些区域可能有交集。 作为⼀个完美主义者,你希望能够在不沾到⾬⽔的前提下从⾬林的⼊⼝到达⾬林的出⼝。也就是说,⽆论何时,你与每个落⾬区域的圆⼼的距离必须严格⼤于该落⾬区域的半径.现在给出每处落⾬区域的圆⼼和半径,请问你能否在不沾⾬⽔的前提下从⼊⼝到达出⼝?

谁能想到这是一道搜索呢?

如果两个下雨的区间相交那么就把它们连起来,

将整块地图斜着分为两个部分,如果能从左边边界走到右边边界就把路都隔断了,就不能到达了。

 

3.区间和的分类:

给定一个数列,求有多少个区间满足和大于0,等于0,小于0?

谁能想到这是一道求顺序对&求逆序对呢?

先用前缀和维护一下,

再求逆序对&顺序对。

 

4.区间最大值求和:

 给定一个数列,求每个区间的最大值的和?

谁能想到这是一道二分?

找到当前数列的最大值maxn,

就相当于有l*r个区间的最大值是maxn,

继续在左区间和右区间找最大值。

 

说实话,SD的题挺好的。

posted @ 2021-03-03 18:00  爆零王  阅读(52)  评论(0编辑  收藏  举报