码迷,mamicode.com
首页 > 其他好文 > 详细

[未完成][题解+总结]20150821

时间:2015-08-21 23:04:54      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:

1、前言

  今天是APIO2010的题目,主要目的依旧是练习搜索(当然说是这么说)。感觉总体而言还是可做的,前两道似乎都比较适合骗分。

 

2、Commando 特别行动队

大概题意:给出一个序列,请划分成若干个子段,要求每一个子段和x变换为ax^2+bx+c后的总和最大。(a,b,c均已知,a<0)

总结:50分的暴力DP还是很好写的,但是由于常数问题可能会被卡成40分,着主要集中在变换值的计算。考试的时候写了个贪心,即根据二次函数的性质,在x=-b/2a存在最大值,故在向前枚举的时候当越过最大值之后可以break掉,而不用枚举到最前面。但是这个正确性明显不足。交到CodeVS上之后我被吓坏了,竟然后6个点全部AC,然而前4个点却WA了。机智的我决定根据数据大小分类讨论,结果评测的时候只有70分,最后3个点全部TLE。后来自己手动测试的时候发现确实T成鬼了,实在膜拜CodeVS的评测速度啊!2.8s的数据跑出了0.4s。

题解:当然这道题是并不存在70分算法的。正解是斜率优化动态规划。【此处待补充!】

代码略。

 

3、Patrol 巡逻

大概题意:给出一棵树,连k条边(k∈[1,2]),使得从1号节点遍历全图的步数最少。

总结:k=1时固然好写,可以证得求得树上最长链即可(即树的直径),可得30分。而后k=2的情况,考场上没写,但是看其他同学的搞法之后觉得很好,虽然同样是不能保证正确性的贪心,但是分数就好看多了,所以以后还是一样,多想想一些稀奇古怪的得分方式吧。

题解:直接求树的直径(30分);求出树的直径之后将这条链删除,再次求直径(贪心算法,66分);树形DP(100分)。为什么前者只有66分呢?因为选取两个环是要分类讨论的,一种为两个环互不相交,没有重边,也就是贪心所能达到的;还有一种为两个环存在公共边,但是易得

-----------------------------------------------------------------------------------------------------

 

-----------------------------------------------------------------------------------------------------

[未完成][题解+总结]20150821

标签:

原文地址:http://www.cnblogs.com/jinkun113/p/4749199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!