[JZOJ5137]养猫
Description
你养了一只猫,一天被划分成n个时刻,每个时刻这只猫都可以选择睡觉或进食
第i个时刻如果选择睡觉则会获得si的愉悦度,否则会获得ei的愉悦度
对于每个长度为k的时刻区间,猫必须有至少min_sleep的时刻选择睡觉,min_eat的时刻选择进食
求最大能获得的愉悦值并给出一种方案。
k<=n<=1000
Solution
先全部选吃,然后考虑把一些位置转成睡
设max_sleep=k-min_eat
那么就可以转成线性规划模型了
把限制写成这个矩阵
差分可得到
可以发现每个变量都出现了两次,一次为-1一次为+1
那么就可以转网络流了
Code
#include <cstdio>
#include <cstring>
#include <algorithm>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fd(i,a,b) for(int i=a;i>=b;i--)
#define rep(i,a) for(int i=lst[a];i;i=nxt[i])
using namespace std;typedef long long ll;const int N=2e3+5,M=40*N,inf=0x7fffffff;
const ll INF=1e13;int t[M],nxt[M],v[M],f[M],lst[N],l;void add(int x,int y,int z,int c) {t[++l]=y;f[l]=z;v[l]=c;nxt[l]=lst[x];lst[x]=l;t[++l]=x;f[l]=0;v[l]=-c;nxt[l]=lst[y];lst[y]=l;
}int n,k,mn,mx,s[N],e[N],S,T,tot;
int q[M],pre[N];
ll dis[N],ans;
bool vis[N];bool spfa() {fo(i,S,T) dis[i]=INF;dis[S]=0;fo(i,S,T) vis[i]=0;vis[S]=1;int i=0,j=1;q[1]=S;while (i<j) {rep(k,q[++i])if (f[k]&&dis[t[k]]>dis[q[i]]+v[k]) {dis[t[k]]=dis[q[i]]+v[k];pre[t[k]]=k;if (!vis[t[k]]) vis[q[++j]=t[k]]=1;}vis[q[i]]=0;}return dis[T]<inf;
}void find() {int flow=inf;for(int i=T;i!=S;i=t[pre[i]^1]) flow=min(flow,f[pre[i]]);for(int i=T;i!=S;i=t[pre[i]^1]) {f[pre[i]]-=flow;f[pre[i]^1]+=flow;ans-=flow*v[pre[i]];}
}void build() {tot=(n-k+1)*2+1;S=0;T=tot+1;l=1;fo(i,1,n) {int st=(i<=k)?1:1+(i-k)*2;int ed=1+i*2;if (ed>tot) ed=tot;add(st,ed,1,e[i]-s[i]);}add(S,1,mx,0);add(tot,T,mn,0);fo(i,2,tot-1)if (i&1) add(S,i,mx,0),add(i,T,mn,0);else add(S,i,mn,0),add(i,T,mx,0);fo(i,1,tot-1)if (i&1) add(i,i+1,inf,0);else add(i+1,i,inf,0);
}int main() {freopen("cat.in","r",stdin);freopen("cat.out","w",stdout);scanf("%d%d%d%d",&n,&k,&mn,&mx);mx=k-mx;fo(i,1,n) scanf("%d",&s[i]);fo(i,1,n) scanf("%d",&e[i]);fo(i,1,n) ans+=e[i];build();while (spfa()) find();printf("%lld\n",ans);fo(i,1,n) {int id=2*i;if (!f[id]) putchar('S');else putchar('E');}return 0;
}
[JZOJ5137]养猫相关推荐
- 养狗防老,比养猫强:日本新研究发现养狗有效预防老年人残疾
明敏 发自 凹非寺 量子位 | 公众号 QbitAI 咱就是说,养狗的理由又多了一条! 就在最近,日本学者的一项研究发现: 养狗可以有效降低老年人残疾风险. 调查显示,养狗的老年人患残疾的风险,大约是 ...
- 最新版养猫小程序前端+后端搭建详细教程
准备工作: 1.云服务器 2.备案域名 3.下载前端+后端源码:下载 4.微擎源码 5.注册微信小程序:https://mp.weixin.qq.com/ 6.下载微信开发者工具:点击下载 教程第一步 ...
- 365赚钱宝养猫小程序程序源码下载
适用主体: 个人主体和企业主体均可使用适用范围广泛 电脑一台 服务器一台(linux系统) 域名一个 宝塔开启(SSL证书) 小程序源码下载地址:(已更新)365赚钱宝养猫小程序程序源码下载-小程序文 ...
- android版本隐藏彩蛋养猫,安卓养猫彩蛋游戏下载-安卓养猫彩蛋 安卓版v0.4.5-PC6手游网...
安卓养猫彩蛋是一款玩法简单趣味画风治愈解压的猫咪养成手机游戏,在安卓养猫彩蛋游戏中玩家可以自由操作,设置各种玩法模式,可以在商店购买鱼饲料喂养猫咪,提升猫咪等级,获得金币奖励,体验获得养猫彩蛋的快乐. ...
- 如何选择适合你的兴趣爱好(四十一),养猫
围城网的摇摇今天给大家带来了"如何选择适合你的兴趣爱好"系列专辑的第四十一讲--养猫.猫属于猫科动物,头圆.颜面部短,前肢五指,后肢四趾,趾端具锐利而弯曲的爪,爪能伸缩.猫以伏击的 ...
- 2020双11养猫技术大揭秘
简介: 你养猫了没? 作者 | 淘系-珑晴 在电商领域,互动是一个重要的用户增长方案,在提升用户黏性.活跃以及拉新上都发挥着重要的作用.今年双11,淘系互动团队推出了"超级星秀猫" ...
- autojs之淘宝养猫活动
//淘宝养猫活动// 手机高 var height = device.height; // 手机宽度 var width = device.width; setScreenMetrics(width, ...
- 养猫的注意事项你们都知道吗
一般来说,宠物店里的猫咪品种很多,颜值也高,但是它们的抵抗力却不是很好,容易拉肚子.感冒,还有一些其他的疾病,那田园猫,活泼好动,有很强的生存能力,在野外都会捕捉一些小虫虫之类的填饱肚子,而且体型比较 ...
- android版本隐藏彩蛋养猫,Android 11 新增养猫彩蛋,正式版即将推送
近日,谷歌正式推送了 Android 11 Beta3 系统,这是 Android 11 第三次测试版,也是最后一版测试固件,结束测试后 Android 11 将正式推送. 此次推送的 Android ...
最新文章
- springboot rocket 多个生产者_RabbiMQ原理与SpringBoot使用
- Dynamics CRM CE 怎样从 UCI 改为 classic UI
- WINCE6.0体系结构学习
- java中VO、PO、DTO 、DO、POJO、BO、TO
- jzoj3792,P2062-分队问题【贪心】
- spring 动态代理_分析动态代理给 Spring 事务埋下的坑
- Spring中DispacherServlet、WebApplicationContext、ServletContext的关系
- 初学者内心最慌的问题:适不适合做一名码农(程序员)??
- powerdesigner 16设计mysql数据库_PowerDesigner16 连接MySql 报错
- python无缘无故不执行/跳过某个函数,无报错无警告
- 数据仓库中的两大经典模型
- win7 mac虚拟机linux,Mac虚拟机parallels desktop超详细安装Win7图文分解
- 修改Windows系统管理员Administrator的名称
- CentOS6.5 yum源配置
- 第一章 广告系统架构
- 详解电磁兼容测试中 EMI 接收机的几种检波器
- Visual Tracking via Adaptive Structural Local Sparse Appearance Model
- codewars day1
- java版五子棋分析_基于JAVA的五子棋游戏系统设计实现分析.doc
- C#/.NET 通过代码打开浏览器
热门文章
- 如何用matlaab把csv转为mat文件_数学建模竞赛学习笔记:用TOPSIS模型进行综合评价
- 群晖NAS教程(十)、利用Docker安装蚂蚁笔记(leanote)
- springboot+mybaitsplus+vue简单的CURD
- 安卓apk 客户端渗透<高级>
- EMC电磁兼容全面解析
- arduino笔记25:arduino用4*4薄膜式键盘
- Why Erlang suggest avoiding defensive programming( Joe Armstrong )
- python爬虫练习3:通过python爬取二手房源信息
- H5之webcoekt播放JPEG图片流
- ae合成设置快捷键_怎么在ae中剪切视频?怎么在ae里裁剪视频?