POJ2228-Naptime【环形结构上的dp】

正题

题目链接:http://poj.org/problem?id=2228


题目大意

有一个环,选择一段长度为n进行计算。如果第i个时间点选择不睡觉那么就会增加aiai。你也可以选择睡觉,第一个时间点不算,睡觉时间至少为m。


解题思路

我们可以分为两种情况,就是会经过1和N,和不会经过1和N。
不会经过1和N的话那么我们直接进行线性dp。
然后如果1和N连起来了话,那么我们就只剩下1和N都在睡觉了,所以我们就强制1和N在睡觉,然后两个答案的最大值就是答案。


code

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m,f[2][3831][2],a[3831],ans;
int main()
{memset(f,-127/3,sizeof(f));ans=-2147483647;scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)scanf("%d",&a[i]);f[1][1][1]=f[1][0][0]=0;//初始化for(int r=2;r<=n;r++){int i=r&1;for(int j=0;j<r;j++)f[i][j][0]=max(f[i^1][j][0],f[i^1][j][1]);for(int j=1;j<=r;j++)f[i][j][1]=max(f[i^1][j-1][0],f[i^1][j-1][1]+a[r]);//统计答案}ans=max(f[n&1][m][0],f[n&1][m][1]);//统计答案memset(f,-127/3,sizeof(f));f[1][1][1]=a[1];//强制睡觉for(int r=2;r<=n;r++){int i=r&1;for(int j=0;j<r;j++)f[i][j][0]=max(f[i^1][j][0],f[i^1][j][1]);for(int j=1;j<=r;j++)f[i][j][1]=max(f[i^1][j-1][0],f[i^1][j-1][1]+a[r]);}ans=max(ans,f[n&1][m][1]);//强制睡觉の统计答案printf("%d",ans);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

发现了个神奇的事儿

今天&#xff0c;我发现了个神奇的事儿。当你不想做某件事的时候&#xff0c;你会发现在做这件事之前有好多事需要“紧急”去做&#xff0c;导致最后你“没空”去做这件事&#xff01;举个例子&#xff01;比如我今天晚上不想写代码&#xff0c;于是下班回家一进门&#xff0c;…

JavaFX鼠标点击事件

一、节点原点击事件 //鼠标点击按压 node.setOnMousePressed(event->{//do something });//鼠标点击释放 node.setOnMouseReleased(event->{//do something });//鼠标点击&#xff08;按压-释放&#xff09; node.setOnMouseClicked(event->{//do something }); 二、…

Visual Studio2017 远程调试 Remote Debugger

前言 大家在使用vs打包后的文件部署到服务器后&#xff0c;有时候我们需要对线网的后台进行调试。但是它不像在VS中。这个时候我们该怎么调试呢&#xff1f; 微软想到了这一点&#xff0c;他们在 VS 中给我们提供了一个功能: Remote Debugger&#xff0c;要远程调试我们就需要…

Ch5501-环路运输【环形处理dp】

正题 题目链接:http://contest-hunter.org:83/contest/0x50%E3%80%8C%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E3%80%8D%E4%BE%8B%E9%A2%98/5501%20%E7%8E%AF%E8%B7%AF%E8%BF%90%E8%BE%93 题目大意 有n座仓库&#xff0c;然后是一个环&#xff0c;两个仓库之间的运输距离为AiAj…

JavaFX鼠标移动事件

一、节点原鼠标移动事件 //鼠标进入node node.setOnMouseEntered(event->{//do something });//鼠标退出node node.setOnMouseExited(event->{//do something });//鼠标移动 node.setOnMouseMoved(event->{//do something }); 二、节点监听鼠标移动事件 //鼠标进入 …

对于这款APP,我充了个终身VIP!!!

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”现在是&#xff1a;2022年3月15日00:02:07昨天&#xff0c;无意间知道了一款特牛的APP&#xff0c;看了看&#xff0c;决定充了个终身会员&#xff01;今天&#xff0c;我就简单的对这…

Ubuntu amp;amp; GitLab CI amp;amp; Docker amp;amp; ASP.NETnbs

上一篇&#xff1a;Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署&#xff08;1&#xff09; 服务器版本 Ubuntu 16.04 LTS。 本篇博文目的&#xff1a;项目中添加Dockerfile文件&#xff0c;使用 CI 脚本构建自定义镜像&#xff0c;推送到 …

POJ2411-Mondriaan's Dream【状态压缩dp】

正题 题目链接:http://poj.org/problem?id2411 题目大意 有nmnm的矩阵&#xff0c;用1212的方块填满有多少种方法。 解题思路 用1表示竖着的块的上面&#xff0c;其他都是0。 我们先计算出所有单排合法状态&#xff08;横着的都是连续的偶数&#xff09;。 然后我们用sta…

JavaFX拖放事件

一、拖拽事件 DRAG_ENTERED_TARGET 拖拽进入node&#xff08;包括进入子node&#xff09; DRAG_ENTERED 拖拽进入node DRAG_EXITED_TARGET 拖拽退出node&#xff08;包括退出子node&#xff09; DRAG_EXITED 拖拽退出node DRAG_DROPPED 拖拽放下源node DRAG_DO…

新版《Windows Sysinternals实战指南》,读书积赞活动

新书《Windows Sysinternals实战指南》即将上市。该本由Sysinternals创始人、Windwos内核技术专家Mark Russinovich 与 Windows专家Aaron Margosis联手编著&#xff0c;详细介绍了Sysinternals每款工具的独到功能&#xff0c;并用较多篇幅深入介绍了如何通过几款重量级工具优化…

Bladex生成Swagger的方法

一、在启动类中添加如下代码&#xff1a;&#xff08;目的是为了打印输出swagger的地址等&#xff09; 注解&#xff1a;Slf4j 实现接口&#xff1a;CommandLineRunner 依赖注入&#xff1a; Autowiredprivate Environment environment;Overridepublic void run(String... str…

了解spark计算模型

简介 在集群背后&#xff0c;有一个非常重要的分布式数据架构&#xff0c;即弹性分布式数据集&#xff08;resilient distributed dataset&#xff0c;RDD&#xff09;&#xff0c;它是逻辑集中的实体&#xff0c;在集群中的多台机器上进行了数据分区。通过对多台机器上不同RDD…

P1955-[NOI2015]程序自动分析【并查集,离散化】

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP1955 题目大意 给出若干个关系&#xff0c;xi≠xj or xixjxi≠xjorxixj&#xff0c;然后求是否全部都满足。 解题思路 首先由于数据较大&#xff0c;所以我们先离散化&#xff0c;然后用并查集。…

如何理解事件溯源

在近期举行的PHPDublin见面会上&#xff0c;来自DynamicRes的架构师Barry Sullivan被问到“什么是事件溯源”&#xff0c;作为对这个问题的回答&#xff0c;他在博客上写下了这篇文章&#xff0c;详细解释了什么是事件溯源以及事件溯源有哪些好处。以下内容翻译自Barry的博客&a…

JavaFX键盘事件

一、键盘事件 KeyPressed 按键按压 KeyReleased 按键释放 KeyTyped 按键类型 二、用法 node.setOnXX(event->{//do something });node.addEventFilter(KeyEvent.XX, event -> {//do something});

java中日期处理的一些工具方法

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 前言 现在是2022年4月16日15:35:14&#xff01;忙里偷闲&#xff0c;直接来看方法吧&#xff0c;写完文章继续去改Bug: 1.计算两个日期之间相差的天数 /*** param stratTime 开始时间* p…

POJ1456-Supermarket【并查集】

正题 题目链接:http://poj.org/problem?id1456 题目大意 有n个货物&#xff0c;有不同的过期时间&#xff0c;过期了就卖不掉了&#xff0c;每个物品卖掉有不同的价值&#xff0c;每天只能卖一个货物&#xff0c;求最大价值。 解题思路 我们可以先排序一下价值 我们用并查…

ASP.NET Core 运行原理解剖[5]:Authentication

在现代应用程序中&#xff0c;认证已不再是简单的将用户凭证保存在浏览器中&#xff0c;而要适应多种场景&#xff0c;如App&#xff0c;WebAPI&#xff0c;第三方登录等等。在 ASP.NET 4.x 时代的Windows认证和Forms认证已无法满足现代化的需求&#xff0c;因此在ASP.NET Core…

bladex自定义分页

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 前言 现在是2022年4月16日21:44:05&#xff01;今天分享一个代码段&#xff0c;个人觉得还是比较有参考性的。 后端使用框架&#xff1a;bladex前端使用技术&#xff1a;AVue功能:自定义分…

JavaFX滚动事件

一、滚动事件 SCROLL 滚动 SCROLL_STARTED 滚动开始 SCROLL_FINISHED 滚动结束 二、用法 node.setOnXX(event->{//do something });node.addEventFilter(ScrollEvent.XX, event -> {//do something});