- 博客(5)
- 收藏
- 关注
原创 Uva10285 详解 最长的滑雪路径(Longest Run on a SnowBoard)
这题是图上的点虽然最多有一万个(100*100),但是每个点可以走的方向最多只只有四个,所以其实很快的就是通过行数*每列总数+列数来标识点的位置。然后遍历就好,用dp来记录当前点的最长严格递减序列#pragma warning(disable:4996) #pragma warning(disable:4996) #include #include #include #include #inclu
2017-02-21 00:55:41 1124
原创 Uva10934 详解 装满水的气球(Dropping water balloons)
因为给定气球数后,不同的尝试次数,值是固定的,所以先求出所有解节省时间。dp(i,j)=dp(i-1,j-1)+1+dp(i,j-1)可以理解为:假设当前在k层,他1.如果该层气球爆炸,则这一层需要消耗一个气球,和一次尝试,所以前面k-1层消耗了i-1个气球和j-1次尝试。2.如果该层气球不爆炸,则这一层不需要消耗气球,但是需要消耗一次尝试,所以j需要减1。 #pra
2017-02-18 21:56:19 1667
原创 《算法竞赛入门经典》7.4回溯法
分支因子b 和 层数L,则最终的解答树节点总量为 (b^L-1)/(b-1)八皇后技巧 主对角线在一条线上 cur-C[cur]==j-C[j],副对角线cur+C[cur]==j+C[j]也可用个vis[][]来存储三种违规情况的出现,但结束这次访问时一定要改回去,这不同于求子集,这个是要你统计总共有多少条不同的方法,即使后面他门前面有相同的部分也是两种不同的方法。因为顺序不同Uva524素数环水
2017-02-05 12:16:52 542
原创 《算法竞赛入门经典》第七章7.1,7.2,7.3(总结)
7.1 一般如果让你求a,b满足h(a,b)=k,k为一个固定的函数,可以通过枚举a,然后用k反向求b,来减少一层循环,两个以上情况同理。 1.技巧总结如果求abcdefgh判断他们是否互补相等,可以从0~n分别对应,然后通过从0~n一 一对i==a[i]来判断是否每一个都存在,来得出结果。 2.尽量把除法表示的关系转换成乘法,避免int截位7.2生成有重复和无重复的排列都可以用c++库中的n
2017-02-05 00:07:29 655
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人