- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 [BZOJ 1597] Usaco2008 Mar 土地购买 · 斜率优化DP
拿到手的时候根本想不到是斜率优化。。。然而思路太神了。对于两块地x1*y1 x2*y2,如果x1这样我们可以得出平方级别的DP方程:现在开始斜率优化:假设j>k且j优于k,那么满足化简得到然后就随便写写呗~虽然各种奇葩错误WA了无数次#include #include #include #include using namespace std;#defin
2015-09-18 20:46:07 1370
原创 [BZOJ 3040] 最短路(road) · 堆优化dijkstra
堆优化dijkstra写法很多,我用的是系统堆priority_queue,见上一篇blog这题空间卡的太紧了#include #include #include #include using namespace std;#define ll long long const int M=10000005;const int N=1000005;int node[M],nx
2015-09-15 12:17:09 886
原创 [HDU 2544] 最短路 · 堆优化dijkstra
模板题用来练手。现在来说一般的图论题目都很难用普通dijkstra过掉,而SPFA又很不稳定,还是学了一下国际公认的堆优化dijkstra。简单来说,堆优化dij就是把for循环找最小的d[i]那维用堆来做,将O(n)降成了O(logn)。关于一个小问题见程序注释【据说priority_queue常数巨大 ,不管了】#include #include #include #
2015-09-14 22:57:13 1988
原创 [BZOJ 1010] HNOI 2008 玩具装箱toy · 斜率优化DP
第三次做这题终于A掉了,了结了一个心病。首先还是列出裸的DP方程:表示当前这个容器的末尾是第i个,上一个的末尾是第j个,si是对玩具长度做的前缀和。那么用斜率优化的话,我们还是设x>y且x优于y,可以得到这个式子:然后为了方便化简,我们设Ti=i+Si,P=L+1,就可以得到这个式子:这样就可以直接斜率优化搞了,如果斜率优化有不理解的可以看我的BZOJ 3156的题解,还是
2015-09-11 12:45:15 477
原创 [BZOJ 3156] 防御准备 · 斜率优化DP
跟佣神(orz)请教了一番大概会了基础的斜率优化:基础的斜率优化一般就是两种情况:(斜率式子)i 且i单调减。对于第一种情况,也就是斜率单调增的,维护队头很好理解,维护队尾的时候,因为我们要保证斜率递增,所以如果(q[r],q[r-1])的斜率大于(i,q[r]),那么我们就把r给踢掉。第二种情况就直接反过来想就可以了。对于这题:f[i]表示在第i个点上放守卫塔,裸的方程为
2015-09-10 22:15:45 437
原创 [BZOJ 2190] SDOI 2008 仪仗队 · 欧拉函数
首先要知道的是,对于两个点(x1,y1) (x2,y2),如果他们的连线上不存在别的整点,也就是能直接互相看见,那么应该满足gcd(x1-x2,y1-y2)=1。对于这道题目,也就是求对于左下的那个点有多少个点死能直接看见的。为了方便,我们把左下的点设为(0,0),对于第0行和第0列,只有(0,1)和(1,0)是能直接看见的;对于剩下的1~n-1行和1~n-1列,
2015-09-09 14:45:39 557
原创 [HDU 2692] Ball · 二分答案+最短路
这是个WA的程序。。。有待填坑。。。不过我也没看出来哪里错了。。。这只是个草稿。。。#include #include #include using namespace std;#define sc scanf("%d%d",&c,&r)#define rep(i,c) for (int i=1;i<=c;i++)const int inf=1e9+7;cons
2015-09-04 21:27:41 709
原创 [HDU 3306] Another kind of Fibonacci · 矩阵快速幂
矩阵乘法一眼题。首先我们根据题意,可以得到,那么我们既然要求 ,可以通过求 ,而求就要在矩阵中维护,和所以我们可以得到这样一个矩阵
2015-09-04 20:22:29 494
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人