毒瘤DP,DP里面最难写的。
P1912
最经典题目了属于是。
其实就是一个决策单调性板子题,因为年代久远所以比较难码出来。
关键就是找准最优子结构,我觉得这种都可以划一个模型,数列优化模型,都这么搞;
P5504
马了个大寄吧子,这题真的是好题,直接帮我理解了什么是斜率优化。
别的不多说了,斜率优化真的理解了还是很简单的,改写了一下也不会令人难以理解;
斜率优化,怎么说,每个点当成是直线和当成是点的意义还是不同的;
LOJ2157
整体二分型的决策单调性DP;
#include <set>
#include <map>
#include <cmath>
#include <queue>
#include <stack>
#include <random>
#include <vector>
#include <bitset>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
#define MAXN 500005
#define LL long long
#define ULL unsigned long long
#define DB double
#define lowbit(x) (-(x) & (x))
#define ENDL putchar('\n')
#define FI first
#define SE second
int xchar() {
static const int maxn = 1000000;
static char b[maxn];
static int pos = 0, len = 0;
if (pos == len)
pos = 0, len = fread(b, 1, maxn, stdin);
if (pos == len)
return -1;
return b[pos ++];
}
//#define getchar xchar
LL read() {
LL f = 1, x = 0;
int s = getchar();
while (s < '0' || s > '9') {
if (s < 0)
return -1;
if (s == '-')
f = -f;
s = getchar();
}
while (s >= '0' && s <= '9') {
x = (x << 3) + (x << 1) + (s ^ 48)