BZOJ 2907: 拜访神犇
设最优策略为第一步向左走
那么肯定是走到最左边最优
需要补一些步数
一种是最右边的连着选,多出一倍代价
一种是不连着选,多出两倍代价
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int cnt,n,lim,s,root,sz[10000005],a[1000005],ls[10000005],rs[10000005];
long long ans,tr[10000005];
void update(int x){
sz[x]=sz[ls[x]]+sz[rs[x]];
tr[x]=tr[ls[x]]+tr[rs[x]];
}
void insert(int &t,int l,int r,int x){
if (!t) t=++cnt;
if (l==r){
sz[t]++;
tr[t]+=x;
return;
}
int mid=(l+r)>>1;
if (x<=mid) insert(ls[t],l,mid,x);
else insert(rs[t],mid+1,r,x);
update(t);
}
long long query(int t,int l,int r,int x){
if (!x) return 0;
if (!t) return 0;
if (l==r) return 1ll*l*x;
int mid=(l+r)>>1;
if (sz[ls[t]]<=x) return query(rs[t],mid+1,r,x-sz[ls[t]])+tr[ls[t]];
else return query(ls[t],l,mid,x);
}
void solve(){
int Lim=lim;
if (Lim>n-2) return;
cnt=0;
root=0;
memset(ls,0,sizeof(ls));
memset(rs,0,sizeof(rs));
memset(tr,0,sizeof(tr));
memset(sz,0,sizeof(sz));
long long ANS=a[n]+a[s];
Lim-=s-1;
if (Lim<=0) ans=min(ans,ANS);
for (int i=s+1; i<n; i++){
insert(root,0,1e9,a[i+1]-a[i]);
long long ANS1=ANS+a[n]-a[i+1];
int l=Lim-(n-(i+1));
if (l>0) ANS1+=query(root,0,1e9,l)*2;
if (l>=0) ans=min(ans,ANS1);
}
}
int main(){
scanf("%d%d%d",&n,&lim,&s);
for (int i=1; i<=n; i++) scanf("%d",&a[i]);
ans=1ll<<60;
if (s!=n && n-2<lim || !lim || s==n && n-1<lim){
printf("-1\n");
return 0;
}
solve();
for (int i=1; i<=n/2; i++) swap(a[i],a[n-i+1]);
for (int i=n; i>=1; i--) a[i]=a[1]-a[i];
lim=n-lim-1;
s=n-s+1;
solve();
if (ans!=1ll<<60) printf("%lld\n",ans);
else printf("-1\n");
return 0;
}
/*
8 4 1
0 99 142 209 398 493 571 652 685
992 8 0 2
0 3 30 124 153 160 199 216 270
*/
BZOJ 2907: 拜访神犇的更多相关文章
- [BZOJ 4916]神犇和蒟蒻
Description 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; Input 请你读入一个整数N;1<=N<=1E9,A.B模1E9+7; Output 请你 ...
- 【刷题】BZOJ 4916 神犇和蒟蒻
Description 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; Input 请你读入一个整数N;1<=N<=1E9,A.B模1E9+7; Output 请你 ...
- 【BZOJ4916】神犇和蒟蒻(杜教筛)
[BZOJ4916]神犇和蒟蒻(杜教筛) 题面 BZOJ 求 \[\sum_{i=1}^n\mu(i^2)\ \ 和\ \sum_{i=1}^n\phi(i^2)\] 其中\[n<=10^9\] ...
- 洛谷 P2300 合并神犇 解题报告
P2300 合并神犇 题目背景 loidc来到了NOI的赛场上,他在那里看到了好多神犇. 题目描述 神犇们现在正排成一排在刷题.每个神犇都有一个能力值p[i].loidc认为坐在附近的金牌爷能力参差不 ...
- BZOJ4916: 神犇和蒟蒻【杜教筛】
Description 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; Input 请你读入一个整数N;1<=N<=1E9,A.B模1E9+7; Output 请你 ...
- 【BZOJ4916】神犇和蒟蒻 解题报告
[BZOJ4916]神犇和蒟蒻 Description 很久很久以前,有一群神犇叫sk和ypl和ssr和hjh和hgr和gjs和yay和xj和zwl和dcx和lyy和dtz和hy和xfz和myh和yw ...
- DP——P2300 合并神犇
题目背景 loidc来到了NOI的赛场上,他在那里看到了好多神犇. 题目描述 神犇们现在正排成一排在刷题.每个神犇都有一个能力值p[i].loidc认为坐在附近的金牌爷能力参差不齐非常难受.于是loi ...
- BZOJ4916 神犇和蒟蒻 【欧拉函数 + 杜教筛】
题目 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; 输入格式 请你读入一个整数N;1<=N<=1E9,A.B模1E9+7; 输出格式 请你输出一个整数A=\sum ...
- [BZOJ4916]神犇(Monster_Qi)和蒟蒻(SWHsz)
很久很久以前,有一只神犇叫Monster_Qi; 很久很久之后,有一只蒟蒻叫SWHsz; 1<=N<=1E9,A.B模1E9+7; 求这个. 求μ的话直接输出1就行了因为除了1的平方外都有 ...
随机推荐
- centos7 & centos6 rrdcache
cat > /etc/systemd/system/rrdcached.service << EOF [Unit] Description=Data caching daemon f ...
- "COM Surrogate 已停止工作"解决方案(windows7 64位及32位)
根据图示步骤,将以下文件添加至“数据执行保护”的例外列表中. 64位:C:Windows\SysWOW64\dllhost.exe 32位:C:\Windows\System32\dllhost.ex ...
- React怎么创建.babelrc文件
在windows环境下做react开发其实是一件非常让人头疼的事,强烈建议使用Mac或者是Linux系统,否则真的是自己挖坑自己跳了. 不过,这里还是给大家说说如何在windows环境下新建一个.ba ...
- NutDao配置多数据源
首先,我必须声明,这是一个非常简单的方法,很多小菜没做出来,是因为把nutz想得太复杂 数据源(或者是数据库连接池),在Nutz.Ioc看来,是一个普通的Bean,没任何特别之处. 再强调一点,除了$ ...
- ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id
远程删除key ssh-keygen -f "~/.ssh/known_hosts" -R 192.168.0.34 如果还是不可以,通过 ssh-keygen 重新生成key
- DOM(一):节点层次-Node类型
Node类型DOM1级定义了一个Node接口,该接口将由DOM中的所有节点类型实现,每个节点都有一个nodeType属性,用于表明节点的类型.节点类型由在Node类型中定义的下列12个数值常量来表示, ...
- Java从入门到放弃——04.数组
本文目标 数组 1.数组 定义一个数组的三个姿势: 数组类型 [] 数组名 = new 数组类型[数组数量]: 数组类型 [] 数组名 = new 数组类型[]{对象1 ...
- Responsive设计 (响应式设计)
一.什么是响应式设计 维基百科是这样对响应式作的描述:“Responsive设计简单的称为RWD,是精心提供各种设备都能浏览网页的一种设计方法,RWD能让你的网页在不同的设备中展现不同的设计风格.” ...
- Python 3 collections.defaultdict() 与 dict的使用和区别
综述: 这里的defaultdict(function_factory)构建的是一个类似dictionary的对象,其中keys的值,自行确定赋值,但是values的类型,是function_fact ...
- 前端JavaScript之DOM使用案例
1.弹出框点击关闭 (这个例子关键自己创建标签以及属性,不是太好想啊,而且作用相对来数也不是太大) <!DOCTYPE html> <html> <head> &l ...