跳房子
题目
解析
显而易见,首先二分答案,每次裸DP一下,求上下界即可
因为裸DP是O(n2)的,再加个log,2s时限+氧气也救不回来
考虑优化DP,显而易见单调队列,注意这里踢的条件以x的差值为界限
快读快输已成日常
code:
#include<cstring>
#include<cstdio>
#define int long long
using namespace std;
inline int max(int x,int y){
}
inline bool idigit(char x){
return (x<'0'|x>'9')?0:1;}
inline int read()
{
int num=0,f=1;
char c=0;
while(!idigit(c=getchar())){
if(c=='-')f=-1;}
while(idigit(c