10.31
今天是第一天,过了这么久,又回来了。高二只有8人停课,还有一些dl没停,这让我有一些惶恐,这个选择需要很大勇气,既然已经选择,就义无反顾的冲吧。
今天主要复习了二分,两种写法。
区间dp要注意,枚举了长度和起点之后,要判一下终点是否会超过n。
准备接下来一周的地狱赛
11.1
今天没比赛。
注意一种转化思想,若要求选N个点,且不亏钱,可以转化为设f[i][j]为选了i个点,的最大钱数,最后枚举一下即可。
11.2
补集思想,若题目给的限制条件是ai-1>ai 或 ai<ai+1 则可以,求它的补集
ai-1< ai >ai+1
若题目求的符合题意n排列,并且与大小有关的,可以考虑从小到大加入,或从大到小。
转化思想,将一个区间的不好维护的问题,转化为只与相邻两项有关的式子,进行维护(gmoj5236)
11.3
大毒瘤题,硬肝t1 2h无果,被虐惨了
11.4
一鼓作气,四题暴力
11.5
最后一场模拟赛。
一看题,以为能切t1,快速打完,然后开t2,肯定是码农题,又要种树,写完暴力,滚粗。再开t3,感觉暴力不好写,然后直接开t4,发现可以水很多分,于是愉快写了3k,可惜数据有锅,不然能get到85,
小总结
其实4h,4道题,还是有点紧张的,节奏不好把握,总之不要总想着切题,拿分才是最重要的。
常见错误
-
数组越界,尤其是有多个下标,今天就打错好几次,那个走地图的way[4][2],不要太吝啬
-
走地图,看清范围,究竟是>0还是大于等于
-
分清n,m的意义
-
rmq的f数组,一定要开够2的次方
-
区间dp,枚举了起点和长度后,要记得判断终点是否小于n
-
如果出现奇怪错误,看一下是不是数组开小了
-
注意变量的范围,不仅是本身的数值,还有参与的运算,比如n*n有可能爆int,要考虑清楚
-
不要用y1,y0等变量
-
多组数据,记得清空,tot,head,还有自带的堆和队列
-
.打高精的时候不要写成c[i] =a[i]+b[i],应该是c[i]+=a[i]+b[i]
-
打高精减法交换两个数时,比如应该写成这样
fo(i,1,n) d[i]=a[i];
fo(i,1,m) a[i]=b[i];
fo(i,1,m) b[i]=0;
fo(i,1,n) b[i]=d[i];
要考虑比b后面比n大的位,如果不清空会影响答案 -
线段树要考虑清楚,比如支持区间加,求最大值,修改了一次后,
mx[o]=max(mx[lc],mx[rc])+add[o]
13,考虑清答案可能的范围,比如要求答案的最大值,答案有可能是负数,就不能把初值设为0
csp2020 rp++