#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f3f3f3f3f
#define N 10010
ll n,k,s[N],f[N],w[N],ans=0,q[N];
inline ll calc(ll j,ll i)
{
ll mid=i+j+1>>1;
ll now=s[mid]-s[mid-1];
return f[j]+s[i]+s[j]-2*s[mid]+((i-j)&1?now:0);
}
inline bool better(ll k1,ll k2,ll i)
{
ll val1=calc(k1,i),val2=calc(k2,i);
if(val2<val1)
return 1;
if(val1<val2)
return 0;
return w[k2]<=w[k1];
}
inline ll bettert(ll k1,ll k2)
{
ll l=k2+1,r=n;
while(l<=r)
{
ll mid=l+r>>1;
if(better(k1,k2,mid))
r=mid-1;
else
l=mid+1;
}
return r+1;
}
inline ll jud(ll mid)
{
ll qh=1,qt=0;
q[++qt]=0;
for(ll i=1;i<=n;++i)
{
while(qh<qt&&better(q
2018 ACM-ICPC 南京站 B Tournament dp+决策单调性+wqs二分
最新推荐文章于 2024-01-24 21:07:58 发布