【OI笔记】2021.8.11
Day3
¶上午
我的MA啊,为什么题目都这么难????首先看T1,看到ans[i]这个东西的时候脑子里边第一时间蹦出dsu on tree,然后就开始尝试。 但是,在最关键的步骤,也就是子树要传什么东西给父亲的时候,我被细节给绕晕了。在徘徊了45分钟之后,毅然决然跳T2。
反思:以后在刚开始的时候还是不拘小节为好,细节之后在一个一个解决就欧克了。
T2,好家伙,两个人,那肯定二分图跑不掉。不过网络流的板子我有点不记得了,等下复习一下。(先开溜) T3,啊这,,,这,,,这不就是点分治,,,差不多是板子题么??好了就你了。然后开始了艰苦的奋战。 前面点分治的模板都好打,毕竟我点分治的板子题也是一个星期前才过。但是到了统计dis的时候,出现了问题。刚开始我是想用一般的方法,也就是二分来解决,后来发现要统计的是p的倍数的路径,二分好像要不得(其实是我太蒻了)。后来,我看着这个路径方程:
(path1+path2-s[root]-max_point[on_the_path])%p=0
看着右边这个“0”,心中着实厚些不爽,干脆就干掉他吧。于是,这个柿子变成了这样:
path2%p=(s[root]+max_point[on_the_path-path1])%p
于是,这个问题就可以通过开个桶枚举path1直接求出path2,这真是 至于max_point怎么求?在求出dis的时候顺便求一下不就好了。。
Update at 12:29 还有,严格控制数组范围!!不然MLE吃不了兜着走!(哭死)
¶下午
下午重新认真学了一遍二分图匹配,再把点分治复习了一遍,算是填坑把。然后大概4点钟开始着手T2,一直。。。
¶晚上
在debug的时候突然发现有运算符的运算顺序有这样一条:
!的优先级大于% 比如!(2+2)%21,要多加一个括号才可以,像这样:!((i+j)%2)0
哇我真的是。。。就这东西调了我一个半小时?!?!?不过也是好事,至少在考场上不用掉坑里了。 (废图少放) T1听闻FJX等诸多DALAO都暴死在那里,我这个蒟蒻就先看看吧。首先是5分的做法。(直接丢大数据)。 emmm今天没搞完,明天继续死磕叭~ 不完美撒花~