最近在读刘汝佳先生的《算法竞赛入门经典》,收获颇丰,特此记录一些自己以前未曾涉猎算法的经典例题题解。
UVA-10755 Garbage Heap(三维前缀和)
题目链接
解题思路
$UVA$上一定要用$%lld$!!!只有$CF$才需要$I64d$!!!空格换行要求也很严格!
大致思路是,把三维用前缀和表示,每次枚举两维,第三维再用前缀和的思想用类似求最大子序列的求法$O(n)$解决,总复杂度$O(n^5)$。
AC代码
1 |
|
UVA-1326 Jurassic Remains(中途相遇法)
题目链接
解题思路
由于直接状态压缩的消耗太大,分成两部分状态压缩解决,通过保存第一部分的状态,枚举第二部分的状态时$O(lgn)$寻找($STL$的$map$),时间复杂度从$O(2^n)$降到$O(2^{\frac n2}logn)$。
AC代码
1 |
|