训练&膜你赛记录

10.27

\(SDOI2016\) 齿轮

本来是一题签到题,用带权\(DSU\),但因为不相信\(double\),用分子分母,复杂化题意出错

\(trick\): \(\log\) 做到化乘为加

10.28

\(collecting\ bugs\)

期望DP模板题

\(Jon\ and\ Orbs\)

题意有亿点混淆,范围没有算出,一开始只枚举到了2000,没有写check所以炸了

\(JXOI2012\) 奇怪的道路

对状态设计不熟练,转移时要先考虑一条边都不连继承过来的情况,在从最近的\(k\)个点里选出\(1\)个与现在的点连边,为了避免重复,这里采用了倒序枚举的方式
中途还因为数组开小了\(WA\),要开到\((1<<(k+1))\)而不只是\((1<<k)\)

\(tips:\) 注意数据范围,需要判断次序计数时,可以用\(01\)背包的思路倒序枚举

\(Football\)

概率裸题,但是要注意这一次的不能与前一次重合。数组开小导致\(RE\) \(2^7=64\) \(QAQ\)

\(聪明的猴子\)

MST裸题,1A

10.29

\(Accumulation\ Degree\)

较基础的换根\(DP\),但由于换根时忘记\(DFS\)错了,还是要注意静态差错能力

\(Computer\)

个人觉得细节比较多,因为复制粘贴,导致最大值和次大值有一段没有更新,\(WA\)了一次,然后需要注意的是如果与最大值相同,可能导致后面决策不同,也要更新

10.30

  • \(最小斯坦纳树\)

10.31

打了一场模拟赛,因为中途有些事情,所以\(T3\)出了状况也没想,\(T4\)打表水了\(80\)\(T1\)只会暴力

\(benifits:\)

\(T1\)

考场只打了暴力

\[\sum_{i=1}^n {C_n^i*C_m^i} \]

\[\sum_{i=1}^n {{C_n^i}*{C_m^{m-i}}} \]

\[C_{n+m}^n \]

形象的理解其实就是从\(n\)中选\(i\)个,从\(m\)中选\(i\)个,及相应从\(m\)中选\(m-i\)个,那么就可以转换为从\(n+m\)中选择\(m\)个了

\(T2\)

还是打了暴力
新套路:将集合的操作转换为时间戳,就可以用差分的思想,动态开点维护区间最大子段和
注意:rt和tot不能同时设为1,必须\(rt=0,tot=0,\)否则就不能够动态开点。

\(T3\)

考场上想到了代价转贡献,但\(f[i][j]\)定义为长度为\(i+j-1\)中第\(j\)条边的方案数从来没有见过,还是要加深理解

\(T4\)

考场想到了打表骗了\(80pts\)
\(80pts\)状压的设计没有想到,反而想到了更为复杂的沙雕暴力状压。
正解矩阵树不多见,模型转换不出来,掉线了。

11.1

又打了一场膜你赛

\(T1\)

\(and,xor,or\)的乱搞题目,找规律\(AC\)

\(T2\)

树形DP的经典套路,先处理子树,再换根,注意维护最优解,次优解
之前一直想到当\(son[u]\)不唯一时就赋值为\(0\),其实是没必要的

\(T3\)

用双关键字\(dij\)水过,正解是\(dij\)最短路径树上\(DP\),个人感觉没什么差别

\(T4\)

一点思路都没有。。。

\(centroids\)

比较难的一题树形\(DP\)

  • 1.\(\frac{n}{2}\)运用:不合法的子树只可能有一个
  • 2.\(son[u]\):这个数组如果有多个相同子树是不用赋值为0的,因为这个时候,\(d[u]\)\(d1[u]\)都是最大值,没有必要为0
  • 3.\(d[u],d1[u]\)这里维护的是子树内的能被替代的最大,次大子树,注意子树内和子树外在这道题里要分开转移,因为如果上面的子树外的\(d\)数组合在一起了,儿子的\(d\)数组就可能不合法了
    特殊的地方是,如果这个子树是这个点\(u\)能拿出的最大子树,那么这个\(d[u]\)对于这个子树来说是不合法的,所以我们还要记录一个\(pos[u]\)
    小结:对于换根DP还是不大熟悉,思维量没上去,还是要多练,记住分别考虑子树内和父亲转移,如果不能变成一个数组就要拆开

\(farmleft\)

自己的贪心策略是对的,但是最后没有对\(2*(n-1)+c[1]\)\(\max\),所以只有\(90pts\)

11.2

模拟赛

\(T1\)

OEIS题,不会写,赛后看题解才大概了解推法,注意分类讨论
复习了下矩阵,取模时最好\(+mod\)不然可能会\(溢出\)

\(T3\)

想复杂了,其实每种矩阵都只需要判断\(2*2\)的小矩阵的情况,根据小矩阵还原大矩阵

\(T2\ T4\)

神仙题/fad

\(Out\ of\ hay\)

mst模板

\(The\ unique\ MST\)

考虑权值相同的边可以加几条,实际加了几条,联通效果是一样的,用单调队列可以控制复杂度在\(O(m)\)

最小瓶颈路 加强版

注意数组2倍4倍,另外求\(lca\)其实可以通过记录出来后的时间戳,再用st算法倍增处理出\(l,r\)段内的\(dep\)最小的节点其实就是\(lca\)

11.3

打了一场模拟赛

\(T1\)

\(sb\)错误:1.通过记录下一个不是零的来加速,可是如果第一个就是0,就只会输出0,必须找到第一个不为0的
2.vector没有朴素数组快,实测会T

\(T2\)

考场上想到维护区间,然而没有了优化空间,正解的思路是利用栈的单调性

\(T3\)

只会暴力,看来还是要加强对状态设计的能力

\(T4\)

用贪心包装的数据结构题,暴力都打挂了

总结:今天第一题太粗心,对成绩影响很大,看来不能忽视简单题

11.4

模拟赛

\(T1\)

构造题,找规律本来已经找出来了,结果不知道为什么没有交上去只交了一个暴力??!!!!
其实赛时程序是能过的/fad

\(T2\)

没有想到\(2^i\)的性质,其实就相当于瓶颈生成树

\(T3\)

不知道为啥写倍增挂了,结果居然是数组开小了?!!!
再看
???
是题目出错了?数据到5e5题面只到1e5。。。。。

\(T4\)

简单的状压+二分的题,A了

总结:今天其实正常分数是310,但由于自身原因和题目的问题,没有把握好,第一题这样的低级错误不能在赛场上出现,以后一定要先检查文件是不是最终的版本

训练记录:

牛场围栏

sb错误,数组是\(n^2\)级别的开小了

墨墨的等式

注意到同余最短路取最小的才是最好的,之前不知道为啥记成最大的了

11.5

模拟赛

\(T1\)

折半搜索,手写二分查找快了一倍多(

\(T2\)

找规律题,没有发现差值递增,且序列增长快,所以序列\(\leq 1e9\)其实是很少的,可以暴力枚举,后面的差值只可能是相邻两项,二分即可

\(T3\)

考场上想到了枚举贡献,但是在数字相等时卡住了,差分的思路也有想到,但考后订正时发现细节部分错误了,由于标程看不懂,所以还没写完

\(T4\)

写了暴力,正解分块?!,DS题果然还需要加强

总结:注意观察题目所给的提示,记得 没有思路时要打表找规律;对数据结构题要有耐心;

11.6

奖励关

一道挺简单的期望DP,但是因为多取了一次,所以一直错,看来还是要注意边界和细节

T3 护甲

差分还是没有调出来,二阶差分还是要加强啊。。。

11.14

期中考完的第一场模拟赛,头还有点晕,有些难受。。

T1

没想到是数学题。。考后一推式子就出来了,考时没有想到,花了太多时间

T2

用约数个数公式先入为主了,没有想出交换顺序,

T3

其实是挺简单的一道构造题,但是没有时间打了,赛后补了

T4

没有打好暴力,没了

总结

刚考完,成绩不(fei) 是(chang) 很(bu) 理 想,心态有些崩了,T1这种签到题都没做出来。。还是要合理安排时间

11.16

以后只能隔天来机房,平时多花点时间思考吧,感觉效果可能会更好

\(link\ out\ cendroids\)

想到了一些比较奇怪的思路,之前一直想错思路,后面想到了重心的性质,其实就可以把下面重心随便断一条边,给上面的重心。

\(魔法指纹\)

分块打表,乱搞模板。但是奇奇怪怪地WA了,后来发现自己暴力都写错了。。
打表时没有注意数组下标从0开始,所以WA得很离谱

11.18

这两天一直在想潜入行动,但是还没想出来。。看了一些数学的课件,晚上来机房打了dsu on tree和长链剖分

树上\(k\)级祖先

长链剖分的运用,调了半天结果是\(dfs2\)的时候写了\(dfs2(son[u],u)\ RE\)
大概思想是,先跳完\(2^{maxw}\),剩下的必然会小于当前链的\(len\)(可以用反证法),那么只要存储向上向下\(len\)的节点就可以了,注意向下的只要存在链上的点就可以了

\(CF1009F\ Dominant\ Indices\)

理解了思路,但是实现不是很懂,抄了一部分std,主要是内存分配那部分。
最后错了一次,是因为getans的时候重复算了一次重儿子
最后在邱老师帮助下理解了分配内存的写法。

11.20

做了几道欧拉函数的板子

潜入行动

DP思路想错了,要用之前的u状态来合并更新状态,之前一直只想用U状态来更新

11.21

打模拟赛,早上思路很混乱,根本没有推到一点性质,rk倒一了

T1

没有大样例,我天真地以为只有1,-1,0然后爆炸了

T2

连暴力都没打出来,只想到了最后一定是用一整行黑的去染色

T3

和上次一样的题目,但还是没想出来

T4

想到了分块。。只打了个挂了的暴力
总结:今天模拟赛在暴力和正解上纠结了很长时间,导致T1,T2这种智慧题一点思路都没有,还是要注意安排时间

\(UVA10299\)

欧拉函数裸题,注意特判\(n=1\)的时候输出\(0\)

11.22

这两天T1正解居然都是暴力。。然后想着位运算多了个\(n\)的复杂度就\(GG\)了,第二题是个推式子题,\(T3\ T4\)都不大懂思路,\(T4\)想出来了大部分,但是由于实现能力太差,没能打出来,只拿了暴力分
T2赛后订正时,把代码写得清爽一点就过了,还是不要压行啊,溢出的不明不白
T3赛后看标程理解了如何实现,看来以后遇到不会的题要往分治的思想靠,可能会优化复杂度,而且写起来比较清晰
T4码农题,看了题解就溜了

posted @ 2020-10-21 21:20  Coder_cjh  阅读(102)  评论(0编辑  收藏  举报