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)
考场只打了暴力
形象的理解其实就是从(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码农题,看了题解就溜了