csp-s m 80 题解

写在前面:(扯淡话)

这次考试是AB组分开考,但是觉得题目并不是很水,所以就来写一下题解,其实这次由于翘掉了午休,所以考试的前半部分还是比较困的(越做越清醒!)今天调完还是很有感触的!

正文:

T1 最长不下降子序列

这次首先一看以为是裸的数据结构优化dp,但是由于数据范围过大,而且数据产生过于诡异,我就愉快的发现循环节,然后搞他,40分钟切掉(只有74分),头铁没有对拍,但是在还剩一个小时的时候发现过不了对拍,就死命的调,由于本人过于脑小,没能发现开大循环节的奥妙,就失去26分,结束后加了3个字符就AC了!其实思维量不大(正解的思维量很大!)

T2 完全背包问题

考试的时候gp不会,就滚粗了!其实这是同于系最短路的裸题,但是由于自己不会,导致我死了!

于是来填坑:

关于同于系最短路的一点理解,其实就是用同余优化最短路,但是我们是用同于系最短路优化背包问题,主要解决的问题是:

$\sum_{i=1}^{n}a_ix_i=k$

主要流程就是:

首先选择一个最小的a作为base,然后我们就发现所有的a都可以用$ base*p+left $来算出来,那么我们就可以用f[i]表示mod mina的条件下余i的时候所能拼出的最小体积!其实我这里只是泛泛而谈,重点还是要自己理解!

我们使用同于系最短路就可以AC这道题

T3最近公共祖先

这道题是最有感触的,我在40分钟打完T1,看T2不会做就去干T3,然后就想出来了类似正解的解法,

我想的是线段树维护dfs序,在修改的时候使用线段树单点修改,然后询问的时候就是直接暴力往上跳,由于算法的局限性,导致我没办法想出来别的优化,于是就T40分,正解其实比较接近,但是我就是相反了,正解是维护修改的时候是区间修改,在查询的时候就是单点查询即可,这看似复杂度并没有变化,但是这有一个很好的性质,就是一旦这颗子树有一个黑点,那么即使有第二个黑点,也没有什么用处,我们利用这个性质就可以break,这是T40与AC的差距,其实我就是应该在想不出来的时候换个角度思考问题,就是思维只是接近正解,但是并不是正解,然后就是代码的事情了,其实如果我考试的时候打的是正解的话,可能好久都调不出来,而且根据后来调试的过程,很有可能WA 0

rp++

猜你喜欢

转载自www.cnblogs.com/hzoi-lsc/p/11710012.html
今日推荐