bzoj 4842: [Neerc2016]Delight for a Cat
Description
Input
Output
#include<cstdio>
#include<queue>
typedef long long i64;
const int N=;
const i64 inf=1ll<<;
int n,k,L,R,as[N],bs[N];
int S,T,es[N],enx[N],ev[N],ec[N],e0[N],ep=,pe[N];
i64 l[N],ans=;
bool in[N];
std::queue<int>q;
void ae(int a,int b,int v,int c){
if(!v)return;
es[ep]=b;enx[ep]=e0[a];ev[ep]=v;ec[ep]=c;e0[a]=ep++;
es[ep]=a;enx[ep]=e0[b];ev[ep]=;ec[ep]=-c;e0[b]=ep++;
}
void mins(int&a,int b){if(a>b)a=b;}
bool sp(){
for(int i=;i<=T;++i)l[i]=-inf;
l[S]=;
q.push(S);
while(q.size()){
int w=q.front();q.pop();
for(int i=e0[w];i;i=enx[i])if(ev[i]){
int u=es[i];
if(l[u]<l[w]+ec[i]){
l[u]=l[w]+ec[i];
pe[u]=i;
if(!in[u])in[u]=,q.push(u);
}
}
in[w]=;
}
if(l[T]>-inf){
int f=;
for(int w=T,e;w!=S;w=es[e^]){
e=pe[w];
mins(f,ev[e]);
}
for(int w=T,e;w!=S;w=es[e^]){
e=pe[w];
ev[e]-=f;
ev[e^]+=f;
}
ans+=l[T]*f;
return ;
}
return ;
}
int ee[N];
int main(){
scanf("%d%d%d%d",&n,&k,&L,&R);
R=k-R;
for(int i=;i<=n;++i)scanf("%d",as+i);
for(int i=;i<=n;++i)scanf("%d",bs+i);
S=n-k+;T=S+;
for(int i=;i<=n-k+;++i)ae(i,i+,R-L,);
ae(,T,L,);
ae(S,n-k+,L,);
for(int i=;i<=n;++i){
ans+=bs[i];
int x=i-k+,y=i+;
if(x<)x=;
mins(y,n-k+);
int c=as[i]-bs[i];
if(c<=)ee[i]=ep,ae(y,x,,c);
else{
ae(y,T,,);
ae(S,x,,c);
ee[i]=ep;
ae(x,y,,-c);
}
}
while(sp());
printf("%lld\n",ans);
for(int i=;i<=n;++i){
int c=as[i]-bs[i];
putchar((c<=)==(!ev[ee[i]])?'S':'E');
}
return ;
}
bzoj 4842: [Neerc2016]Delight for a Cat的更多相关文章
- BZOJ.4842.[NEERC2016]Delight for a Cat(费用流)
BZOJ 参考这儿. 首先如果一个活动的时间满足条件,那么另一个活动也一定满足.还有就是这题就是费用流没有为什么.不妨假设最初所有时间都用来睡觉,那么我们要对每个\(k\)大小区间选出\([t2,k- ...
- bzoj 4842 [Neerc2016]Delight for a Cat 最小费用最大流,线性规划
题意:有n个小时,对于第i个小时,睡觉的愉悦值为si,打隔膜的愉悦值为ei,同时对于任意一段连续的k小时,必须至少有t1时间在睡觉,t2时间在打隔膜.如果要获得的愉悦值尽 量大,求最大的愉悦值和睡觉还 ...
- bzoj 4842: [Neerc2016]Delight for a Cat【最小费用最大流】
考试题搞了好久也没懂-- 正解应该是线性规划 https://www.cnblogs.com/CQzhangyu/p/7894559.html 可是不会写啊 如果从网络流的角度来体会大概是这样 htt ...
- 【BZOJ4842】[Neerc2016]Delight for a Cat 线性规划+费用流
[BZOJ4842][Neerc2016]Delight for a Cat Description ls是一个特别堕落的小朋友,对于n个连续的小时,他将要么睡觉要么打隔膜,一个小时内他不能既睡觉也打 ...
- [bzoj4842][bzoj1283][Neerc2016]Delight for a Cat/序列_线性规划_费用流
4842: [Neerc2016]Delight for a Cat_1283: 序列 题目大意:ls是一个特别堕落的小朋友,对于n个连续的小时,他将要么睡觉要么打隔膜,一个小时内他不能既睡觉也打隔膜 ...
- 题解-bzoj1283序列 & bzoj4842 [Neerc2016]Delight for a Cat
因为这两题有递进关系,所以放一起写 Problem bzoj1283 序列 题意概要:一个长度为 \(n\) 的序列\(\{c_i\}\),求一个子集,使得原序列中任意长度为 \(m\) 的子串中被选 ...
- bzoj4842: [Neerc2016]Delight for a Cat
bzoj4842 这是一道网络流的题(大家都看出来了吧) 首先我们简化一下题目,选出最关键的部分(就是知道什么和要求什么,还有条件) 我们在这里把睡觉设为0,至少有t0时间在睡觉,把打隔膜设为1,至少 ...
- 【bzoj4842】[Neerc2016]Delight for a Cat 线性规划与网络流
题目描述 $n$ 个连续的位置,每个位置可以填入 S 和 E ,第 $i$ 个位置填入 S 可以获得 $s_i$ 的收益,填入 E 可以获得 $e_i$ 的收益.要求每连续的 $k$ 个位置必须包含至 ...
- 【xsy2115】Delight for a Cat
Time Limit: 1000 ms Memory Limit: 512 MB Description 从前,有一只懒猫叫CJB.每个小时,这只猫要么在睡觉,要么在吃东西,但不能一边睡觉一边吃东 ...
随机推荐
- bzoj1089
题解: 递推 f[i]=f[i-1]^n+1 ans=f[d]-f[d-1] 代码: #include<bits/stdc++.h> using namespace std; int n, ...
- cf935E
题解: 树形dp 要记录一个最小的,一个最大的 然后转移 代码: #include<bits/stdc++.h> using namespace std; ; ][],f[N*][],T[ ...
- java中数组是不是对象?
[转自知乎]:http://www.zhihu.com/question/26297216 JAVA中的数组是对象吗? public class test { public static void m ...
- 面试题21:包含min函数的栈
题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素.要求函数min.push以及pop的时间复杂度都是O(1). 分析:google的一道面试题.我看到这道题目时,第一反应就是每次p ...
- 吐血推荐:罗马尼亚无版权VPS服务商HostSolutions评测-绝对真实
要放心大胆的玩 VPS,要找性价比高.信用好,服务稳定,限制少的服务商是很不容易的.这里我先点几个黑名单:第一类 HiFormance.VirMach 低价流 VPS 服务商,以低从吸引消费者.俗话说 ...
- html头标签meta实现refresh重定向
<html> <head> <meta http-equiv="content-type" content="text/html; char ...
- WLAN 802.11 a/b/g PHY Specification and EDVT Measurement V
Receive Minimum Input Level (Sensitivity) 测试方法: Receiver Adjacent Channel Rejection (ACR) -For IEEE8 ...
- 《DSP using MATLAB》Problem 3.8
2018年元旦,他乡加班中,外面尽是些放炮的,别人的繁华与我无关. 代码: %% ----------------------------------------------------------- ...
- HashMap Hashtable LinkedHashMap TreeMap
// Map<String, String> map = new HashMap<String, String>(); // bb aa cc Map<String, S ...
- JQuery输入框获取/失去焦点行为
//搜索框获取焦点清除内容 $(function() { $("input").focus(function() { //获取焦点,清空默认内容 $(this).css('colo ...