|
找题解,上http://paulinsider.at.ua/news/ctravel/2011-11-09-12,快,稳,准,大牛的选择!
题目 130 [USACO Mar08] 游荡的奶牛
2011-11-09 18:16:14
|
|
树形DP,填根节点时先填其儿子节点,全题设一号节点为根节点。
f[i][1]表示拜访奶牛i所得到的最大拜访量。 f[i][0]表示不拜访奶牛i所得到的最大拜访量。 用了递归。 目标状态为:f[1][0]与f[1][1]中大的一个。 |
|
一定要看清题认真写
|
|
小号飘过……
|
|
普通手动快排:0.061
随机化手动快排:0.069 不解了,唉…… (本题其实就是两次排序,总的排序+相邻数的差的排序) |
|
寬搜
|
|
找题解!!!上http://paulinsider.at.ua/news/protifz/2011-11-09-10,快,稳,准,大牛的选择!!
题目 613 火车站饭店
2011-11-09 13:24:18
|
|
线性动规,
f10[i]表示到10*i为止花费的最小费用。 读题会发现其实赛车只会走10的整数倍的距离。 对此,有些量需要缩小十倍,以保证空间复杂度不至于过高。 |
|
記憶化搜索
|
|
认为是很麻烦的DP,情况太多,交了好多次才过,哎。
关键还是水平不到家啊,其中有好几次读入处理都出了错误。 |
|
贪心,不管横竖,选择最大的先切(有相等无所谓,当有几个相等的最大值时,随便选一个)
完事儿,AC。 |
|
自主构图+最小生成树,
因为用邻接矩阵存的图(似乎用邻接表构图会很麻烦……), 再加上图是一个不折不扣的稠密图(本来就是完全图), 用的普里姆算法。(克鲁斯卡尔算法适用于稀疏图,用邻接表的图)。 这里普里姆是用的“不完全”队列操作实现的,感觉应该是普里姆算法中最简单最快的实现方法了。 |
|
找题解,上http://paulinsider.at.ua/news/ppg/2011-11-08-8,快,稳,准,大牛的选择!!
用prim |
|
神棍的容斥原理
|
|
线性(过全)或区间型(过不全)动归:
状态:(过不全) f[i][j]表示从i开始的j个数分配的最小机房数。 状态:(过全) f[i]表示从首部到i为止的人分配的最小机房数。 加求和预处理, AC。 |
|
表示很坑爹。。
|
|
提供一个小发现:(本题用此方法全部正确)
pow(x,x)%moder==pow(x%moder,x%moder) 其实正规的算法应该是快速幂。(自己也不会) n^m=n^(2^x1)*n^(2^x2)*...*n^(2^xn) 其中m=2^x1+2^x2+...+2^xn 例: 5^9=5^8*5^0*5^0*5^1 然后一个高精度加法,数值递推(推出来后是一个杨辉三角),我用的是十亿进制 搞定。 |
|
動規
|
|
貪心
|
|
FLOYD可以过,听说可以用SPFA,只是自己不会用……
得到一个教训:int型矩阵(数组)中自己默认的最大值最好不要存0.5*(2^31-1)以上的数,不然在求和运算中都有可能出错。 自己设置的最大值根据用到运算种类的不同需要随时改变(数据间需要用到乘法运算时估计就得小于<根号下>(2^31-1)了) |