noip 模拟赛 4 & 3
T1 怎么能花 1.5 个小时的啊。tmd 这玩意不是手玩 1min 直接就做完了吗。
T2 的话注意【钦定转移 1 个方向】,区间 dp 很好写,差分也很典。
T3 是个康托展开。然后发现排列进制数你可以算初始和末尾的状态。末状态的得出,你考虑最后面每一位自己动,后面不变的次数是 \(n!\) 级别的,按照这个模拟即可。
然后知道一个排列的初末状态过后就可以数位 dp 算:两个状态之间的所有状态在排列进制数下的数位和。这个你考虑记录 [ans, num],合并即可。
T4 不带修就用 ds 优化建图,然后缩点,统计 in0 点即可。带修估计不能这样了,虽然改的边是 O(1) 级别但是也不好维护,所以你考虑另一种方法。
挖掘性质。这个题模型很简单所以考虑序列上。分段。
每一段:每个元素都在这里面全部出现,并且操作一次即可消完(也就是区间有交)。
这玩意分段由于每个数有 2 次,容易想到异或 hash。那么每次修改必定最多影响 2 个段,这个似乎就比较好做了。第二问还没想。
T1 这种 dp 最近一个月做了 3 次。通常都是通过 dp 来保证贪心的正确,主要原因是 dp 有一定的限制,贪心可以保证限制一定在状态的正确位置。(通俗:假设 2 个最终都要选,那么谁一定先选,就排到前面去,此时 dp 会和前面决策挂钩)
比如这个题推完式子发现最影响决策的是 \(a+b\)。于是 \(a+b\) 排序,大的必定在前面用了。于是做完了
T2 是简单的算概率,稍微容斥一下就好了,下次做快一点。
T3 通过 V=E+1 的转化就变成了扫描线,甚至不用建图,但是没搞懂 cdq。
T4 考虑列出 dp = max(dpto + w, val(i)),val(i) 表示删除了这条边过后的最短距离。
树上并查集,合并。
说点闲话。
现在考的都是些什么题?人类智慧题。
板题还会有吗。会,但不多。
某位努力型选手真的只是瞎努力才成功的吗,不,他一直用做题来提升自己的思维,注意,套路和思维是不一样的,套路谁不会谁必定淘汰。
我时常感慨时间不够,但是明明那么多颓废的时间可以利用偏偏我还是要选择去浪费,这是怎么回事啊。
我一直怀疑自己的代码能力。其实这真的和做题习惯有关。平时做题就特别考虑题解的实现,而忽略了自己coding的练习过程。这因如此才使我创造了 1h 切绿的神话吧。
而且有些题感觉完全显然的,为什么每次都要做这么久啊,我做 1h,别人玩 30min 然后做 25min 甚至在我前面,真的想不通啊。要废了。