Juice Extractor dp

题意:

水果忍者游戏,给出N个水果的出现时间和消失时间。

每次切可以清除该时刻中屏幕上的所有水果,只有combo>=3的时候才得分,得分为combo的值。

题解:

可以把每个水果看成是一段时间区间。

然后把这些区间按照出现时间为第一关键字,消失时间为第二关键字排序。

我们定义dp方程dp[i]表示最后一刀切掉第i个水果,所获得的最大积分。

那么,最优的方案肯定是在第i个水果出现时间进行切。

这样的话,转移方程

dp[i] = max(dp[i],dp[j-1]+sum);

其中sum表示j到i之间所有结束时间>=第i个水果出现时间的水果数量。

但是注意!

这个题目有一个限制,就是说每次切必定将所有的水果都切完。

也就时候如果j-1水果的出现时间=第j个水果的出现时间的话,那么是不能进行转移的,因为切第j-1个水果的时候必然把第j个水果切掉,不会留下。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> P;
bool cmp(P p1,P p2){if(p1.first == p2.first) return p1.second < p2.second;return p1.first < p2.first;
} 
const int maxn = 1005;
P ps[maxn];
int dp[maxn];
int n;
int main(){int T,cas=0;cin>>T;ps[0].first = ps[0].second = -1;while(T--){memset(dp,0,sizeof(dp));scanf("%d",&n);for(int i = 1;i <= n;++i){int a,b;scanf("%d %d",&a,&b);ps[i] = make_pair(a,b);}	sort(ps+1,ps+1+n,cmp);int ans = 0;if(n >= 3){for(int i = 3;i <= n;++i){int tim = ps[i].first;int sm = 0;for(int j = i;j >= 1;--j){if(ps[j].second >= tim) sm++;if(ps[j-1].first != ps[j].first)dp[i] = max(dp[i],dp[j-1] + (sm >= 3?sm:0));}ans = max(ans,dp[i]);}}printf("Case #%d: %d\n",++cas,ans);}return 0;
} 


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

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

相关文章

【动态规划】公共子串

公共子串公共子串公共子串 Description 设有A、B两个字符串&#xff0c;找出A、B共同子串&#xff0c;每个字符串无相同字符&#xff0c;可以不连续&#xff0c;但顺序不能颠倒。 Input 第一行字符串A 第二行字符串&#xff22; Output 最长公共子串的长度. Sample Inp…

P1117-[NOI2016]优秀的拆分【SA】

正题 题目链接:https://www.luogu.com.cn/problem/P1117 题目大意 长度为nnn的字符串&#xff0c;求所有子串有多少种分割成AABBAABBAABB的方式。 解题思路 aia_iai​表示以iii结尾的子串中有多少种分割成AAAAAA的方式 bib_ibi​表示以iii开头的子串中有多少种分割成AAAAAA的…

7、play中的文件上传

1、基本的文件上传处理 将form的类型设置成multipart/form-data&#xff0c;请求的方式必须是POST类型&#xff0c;实例如下&#xff1a; 请求发到controller&#xff0c;controller中处理&#xff1a; public Result upload() {MultipartFormData<TemporaryFile> bod…

分布式高性能消息处理中心HPMessageCenter

HPMessageCenter高性能消息分发中心。用户只需写好restful接口&#xff0c;在portal里面配置消息的处理地址&#xff0c;消息消费者就会自动访问相关接口&#xff0c;完成消息任务。&#xff08;其实HPMessageCenter有两个版本&#xff0c;这次开源的是第二个版本。在第一个版本…

codeforces Balanced Substring

B. Balanced Substringtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a string s consisting only of characters 0 and 1. A substring [l, r] of s is a string slsl  1sl  2... sr, and its l…

【动态规划】打砖块

打砖块打砖块打砖块 Description KXT是一个很无聊的小朋友&#xff0c;一天到晚都在打坐… 一天&#xff0c;被他发现了一个比打坐更无聊的事情——打砖块。很多块砖分布在一个mm的矩阵中&#xff0c;他可以消掉以他为左上角顶点的一个nn的矩阵里的所有砖块。 喜欢偷懒的他…

jzoj2292-PPMM【模拟,堆】

正题 题目链接:https://jzoj.net/senior/#contest/show/3008/0 题目大意 一个队列要求支持 队尾压入一个数队首弹出一个数队列里所有数取反求最大值 解题思路 开444个堆&#xff0c;存正数最大值最小值&#xff0c;负数最大值最小值&#xff0c;取反时打标记即可。 codecod…

8、play框架中持久层操作

1、使用jdbc连接数据库 1、1 简介 JDBC是一个阻塞操作&#xff0c;它将导致线程等待&#xff0c;直接使用JDBC进行查询将导致性能降低 1、2 配置数据源 play提供了一个用于管理JDBC连接池的插件&#xff0c;可以根据需要配置任意多个数据库&#xff0c;想要使用此插件&…

DBCHM-最简单、实用的数据库表列批注维护工具

DBCHM支持SqlServer/MySql/Oracle/PostgreSQL/Sqlite等数据库的表列批注维护管理。DBCHM有以下几个功能表&#xff0c;列的批注可以编辑保存到数据库。表&#xff0c;列的批注支持通过pdm文件导入的方式进行更新到数据库。基于数据库中的表列结构(列ID/列名/数据类型/长度/精度…

图书管理员【2017年普及组第二题】

图书管理员图书管理员图书管理员 题目描述 图书馆中每本书都有一个图书编码&#xff0c;可以用于快速检索图书&#xff0c;这个图书编码是一个正整数。 每位借书的读者手中有一个需求码&#xff0c;这个需求码也是一个正整数。如果一本书的图书编码恰好以读者的需 求码结尾&…

jzoj4012-Distinct Paths【搜索】

正题 题目链接:https://jzoj.net/senior/#contest/show/3008/1 题目大意 n∗mn*mn∗m的格子&#xff0c;kkk种颜色涂色&#xff0c;求有多少种方案使得没有任意一条只往右和下的路径经过相同颜色。 解题思路 显然如果nm−1>knm-1>knm−1>k就无解&#xff0c;所以nm−…

浅谈Log4net在项目中如何记录日志

一 引入背景在软件开发周期中&#xff0c;无论是开发中&#xff0c;或是测试中&#xff0c;或是上线后&#xff0c;选择合适的工具监控程序的运行状态至关重要&#xff0c;只有如此&#xff0c;才能更好地排查程序问题和检测程序性能问题等。本篇文章主要与大家分享&#xf…

9、play中缓存的使用

1、简介 对于存储在缓存中的任何数据&#xff0c;都需要放置一个再生策略&#xff0c;以防数据丢失。这一理念是play基本原则之一。对于进程内缓存&#xff0c;Caffeine 通常是最佳选择。如果需要分布式缓存&#xff0c;play提供了Memcached和Redis的第三方插件。 2、添加缓存…

ISBN号码【模拟】

ISBN号码ISBN号码ISBN号码 题目描述 每一本正式出版的图书都有一个ISBN号码与之对应&#xff0c;ISBN码包括9位数字、1位识别码和3位分隔符&#xff0c;其规定格式如“x-xxx-xxxxx-x”&#xff0c;其中符号“-”是分隔符&#xff08;键盘上的减号&#xff09;&#xff0c;最后…

jzoj4010-Philips and Calculator【搜索,dp】

正题 题目链接:https://jzoj.net/senior/#contest/show/3008/2 题目大意 两个数(a,b)(a,b)(a,b)&#xff0c;两个操作 (a,b)−>(a,b1)(a,b)->(a,b1)(a,b)−>(a,b1)(a,b)−>(a∗b,b)(a,b)->(a*b,b)(a,b)−>(a∗b,b) 求ppp步以内aaa能到达[l,r][l,r][l,r]之…

10、使用ws调用Rest api

目录 1、简介 2、添加WS配置 3、发送请求 4、处理请求 5、常用模式和用例 6、自定义BodyReadables和BodyWritables 6、独立WS 7、访问AsyncHttpClient 8、配置WS 1、简介 有时我们想从一个play应用程序中调用其他HTTP服务。Play提供了WS库来进行异步HTTP方法调用。 …

笨小猴

笨小猴 题目描述 笨小猴的词汇量很小&#xff0c;所以每次做英语选择题的时候都很头疼。但是他找到了一种方法&#xff0c;经试验证明&#xff0c;用这种方法去选择选项的时候选对的几率非常大&#xff01; 这种方法的具体描述如下&#xff1a;假设maxn是单词中出现次数最多…

codeforces Cable Connection

我的思路很暴力 直接枚举斜率[-100000,0]之间&#xff0c;然后设置一个非常远的直线&#xff0c;对所有点扫一遍&#xff0c;确定一个离这条直线最近的点P。 用点P和斜率k来创建cable&#xff0c;并用cable的距离来relax答案。 现在问题在于&#xff0c;怎么来枚举k&#xf…

拥抱开源,Office 365 开发迎来新时代

前言作为全球最大的开放源代码托管平台&#xff0c;Github在上周迎来了它的十岁生日。自从2008年正式上线以来&#xff0c;Github上面汇聚了数以千万计的开发人员和各种项目&#xff0c;它几乎成为了开源的代名词和风向标&#xff0c;各大软件巨头都纷纷支持&#xff0c;在广大…

jzoj4015-数列【循环节,数论】

正题 题目链接:https://jzoj.net/senior/#contest/show/3011/0 题目大意 给出n,m,a,b,c,x0n,m,a,b,c,x_0n,m,a,b,c,x0​ xiaxi−12bxi−1cx_iax_{i-1}^2bx_{i-1}cxi​axi−12​bxi−1​c 求xn%mx_n\%mxn​%m 解题思路 第一段n≤1e6n\leq 1e6n≤1e6直接O(n)O(n)O(n)暴力做 第…