
斜率DP
deprecated_tzg
这个作者很懒,什么都没留下…
展开
-
hdu 2829 Lawrence
斜率dp#include #include // 保证不超时,斜率dp/* dp[i][x] 前 i 个点,去掉j条边所获破坏的最大值 res = tol - dp[i][x] dp[i][x] = max( dp[j][x-1] + sum[j]*(sum[i]-sum[j])) x-1 < j < i 斜率dp: sum[i]递增 if k= dp[k][x-1] dp原创 2013-07-18 11:57:23 · 641 阅读 · 0 评论 -
hdu 3507 Print Article
斜率dp简单题#include #include /* dp[i] = min( dp[j] + M + (...)^2 )*/const int MAXN = 500005;int n, m;int da[MAXN], sum[MAXN], dp[MAXN];int q[MAXN], head, tail;int getDP(int i, int j){ return原创 2013-07-18 12:40:02 · 581 阅读 · 0 评论 -
hdu 3480 Division
斜率dp#include #include #include using namespace std;const int MAXN = 10005;const int MAXM = 5005;// 斜率DP/* dp[i][x] = min(dp[j][x-1] + (a[i]-a[j+1])^2) x-1<=j<i*/int dp[MAXN][MAXM];int a[M原创 2013-07-18 17:45:20 · 540 阅读 · 0 评论 -
hdu 2993 MAX Average Problem
斜率dp,主要是结合求下凸包的性质#include #include #include using namespace std;/* dp[i] = max{(sum[i]-sum[j])/(i-j) } (i-j >= k) 等于点(i,sum[i])与点(j,sum[j])间的斜率 斜率dp 每次更新i时,更新凸包*/const int MAXN = 100005;原创 2013-07-19 22:23:51 · 565 阅读 · 0 评论 -
hdu 3045 Picnic Cows
斜率dp先更新,后添加#include #include #include using namespace std;typedef __int64 ll;/* 斜率dp dp[i] = min(dp[j] + sum[i]-sum[j]-a[j+1]*(i-j)) i-m>=j>=m if k<j dp[k]-sum[k]-a[k+1]*(i-k原创 2013-07-23 02:03:17 · 546 阅读 · 0 评论 -
hdu 4576 Robot
http://acm.hdu.edu.cn/showproblem.php?pid=4576暴力概率DP#include #include #include #include #include #include #include #include #include #include using namespace std;#ifdef __GNUC__#原创 2013-10-31 08:21:23 · 585 阅读 · 0 评论