Codeforces Round #219div1 部分题解
来源:互联网 发布:算命网站源码免费下载 编辑:程序博客网 时间:2024/04/29 06:15
感觉这场比赛题目略微奇怪吧..
开始比赛后首先开了C,dp方程是显而易见的,观察了下转移发现这不就是经典的单调队列吗0 0.
赶快啪啪啪敲完,交上去WA3... 难过了,盯着看了十几分钟,什么错误也没看出来
有点绝望... 估计是要跌成紫了... 可是已经用大号交了无力挽回了 只能争取把损失降到最低,于是先把A过了准备C对拍,朴素写了几行突然弹出个窗口说C出了点问题rejudge了.... (汗.. 然后就过了) 瞬间就不是那么绝望了,虽然A出得特别晚但是C出得早还是有一定优势的
这时候同时看了B和D,全都不太会做T_T.. D的核心问题显然是维护树上的一个集合构成的联通块大小,这东西肯定是能用LCA算的,于是先敲了一堆树BFS和LCA,边敲变想,想着想着突然机智的发现Bn^5也只有1亿,常数至少要除以8,时限居然还有4秒,赶快啪啪啪A掉了
最后剩下40分钟和一个D,因为写了不少感觉还是靠谱的。于是我仔细想了想发现可以算出所有点到LCA的距离和,之后去重只要考虑dfs序排序后所有相邻点对的LCA即可,这个东西用set就可以维护了
然后啪啪啪啪啪啪,终于在还剩5分钟的时候过掉了~ 最后rating还是涨了点,挺开心的
具体做法:
A
比赛时的想法是二分答案,如果答案固定为x了,那么如果最小的x只袋鼠不能被最大的x只袋鼠装住的话,其它情况肯定更不行了,那么只需线性check一次即可
观察发现答案不会超过n/2,于是可以把袋鼠排序后从中间分开,前一半被装后一般装,那么直接贪心就可以了
B
感觉比赛中五方的dp比较好.. 首先固定左上的界,然后统计每个点为右下角可以构成多少个合法的矩形即可
官方题解的做法是先用二维前缀和处理出所有合法矩形,然后四维前缀和直接算答案
感觉写起来还是有点麻烦的
C
题目相当于让所有的|a[i]-x|之和尽量小,很容易想到一个dp:f[i][j]代表放第i个烟花时站在j号位置,之前的和最小是多少
这个转移显然就是f[i- 1]中的一段区间最小值,并随着j向右滑动
这是经典的单调队列,可以百度"poj sliding windows"
D
上面讲了大概的做法了,赛后发现可以更加简明:
把集合中的点按dfs序排列,求所有相邻两点到LCA的距离,然后观察子树上的每条边,除了最左、最右的两条链之外,其余每条边被经过了两次(从左边的子树跨越到下方子树,从右边的子树跨越到下方子树),再加上左右两条链(既dfs最大、最小的点到它们LCA的距离),这样每条边都被统计了两次,就可以计算出有联通块大小了
E
数学渣 几何渣 完全不会T_T.. 谁来教我反演T_T..
赛季过去了好久了,回想起来总是有点失落
以前的时候太注重表面上的"题量",盲目看了很多题解,导致思维太弱,最近多多少少有点提升
做了这么久CF了,感觉这个rating系统还是不太科学,短时间内的发挥对rating的影响太大,不如TC的rating更能反应实际水平
不过毕竟都不是ACM 0 0..
其实更喜欢CF的感觉,但是跟ACM比起来确实像游戏一样
明年不知道还会不会继续ACM, anyway这一年还是不能完全扔掉算法练习
哎.. 前路迷茫
- Codeforces Round #219div1 部分题解
- Codeforces Round #418部分题解
- Codeforces Educational Codeforces Round 16 部分题解
- codeforces round 156 div1
- Codeforces Round #223 div1
- codeforces round #250 div1
- codeforces round #253 div1
- Codeforces Round 313(div1)
- codeforces Round 213 div2部分题解
- Codeforces Round #216 (Div. 2)部分题解
- Codeforces Round #277.5 (Div. 2)部分题解
- Codeforces Round #359 (Div. 2) 部分题解
- Codeforces Round #378 (Div. 2) 部分题解
- Codeforces Round #386 (Div.2)部分题解
- 【codeforces #275(div1)】AB题解
- [Codeforces #296 div1]简要题解
- Codeforces #302 Div1 简要题解
- codeforces round 176Div1 B
- 关于Nginx的server_name
- 敏捷需求分析及深度提升(广州 2014.1.11)
- 视图控制器
- JavaScript获取HTML DOM节点元素的方法的总结
- UILabel 文字适应
- Codeforces Round #219div1 部分题解
- 从Viola&Jones的人脸检测说起
- 72. XPages的文档数据源
- Enterprise Architect 7.0入门教程
- 体验最火的敏捷——SCRUM(厦门,2014.1.4)
- IOS中Retain和Copy的区别
- class0,class1,class2 SMS
- 如何保持iOS上键盘出现时输入框不被覆盖
- bk-quantum-admin-guide-grizzly阅读总结