【NOIP2017提高A组模拟9.7】陶陶摘苹果

这篇博客主要介绍了NOIP2017提高A组模拟赛中的一道题目——陶陶摘苹果。文章详细阐述了问题描述、输入输出格式,并提供了样例输入输出。作者提到在考试中因误操作导致了错误答案,但指出可以使用动态规划来解决此问题,通过前缀和维护区间苹果数,并对凳子按位置进行排序。转移状态定义为f[i][j]表示第i个凳子选j个的最大苹果数,时间复杂度为O(k*m^2)。
摘要由CSDN通过智能技术生成

【NOIP2017提高A组模拟9.7】陶陶摘苹果

Description

在这里插入图片描述

Input

在这里插入图片描述

Output

在这里插入图片描述

Sample Input

10 5 110 3
100 200 150 140 129 134 167 198 200 111
0 30
20 40
90 100
100 110
50 60

Sample Output

7

Data Constraint

在这里插入图片描述

题解

考试的时候已经打出了正解,但-1放错位置,爆零
容易想到DP
设f[i][j]为第i个凳子,选了j个的最大摘苹果数
用前缀和维护区间采摘的苹果数
把凳子按l排序
转移:f[i][j]=max(f[k][j-1]+(max(a[i].l-1,a[k].r)~a[i].r)) (a[k].r<a[i].r)
max(a[l].l-1,a[k].r)是取选取苹果区间的左端点,a[i].r就是右端点
时间复杂度O(k*m^2)

code

#include<cstdio>
#include<cctype>
#include<cstdlib>
#include<algorithm>
#define R register
using namespace std;
const int N=1e6+10;
struct node{
   
	int l,r;
}a[N];
int sum[N]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值