陶陶摘苹果

题目

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

题解

题目大意

一条线上有\(n\)个点,有\(m\)条线段,最多选\(k\)条线段使得覆盖的点最多

分析

考虑\(DP\)

设\(f[i][j]\)表示到了第\(i\)条线段,已经选了\(j\)条,当前这个必选的最多点数

转移

枚举一个\(k\)表示上一条线段

\(f[i][j]=max(f[k][j-1]+新的点数)\)

新的点数可以用前缀和维护

总结

没有想出DP式子

在设状态的时候可以想想要求什么,什么是变量

然后用变量来设状态

Code

#include<bits/stdc++.h>
using namespace std;
struct node
{
int begin,end;
}c[205];
int n,m,h,k,x,mx,ans,a[1000005],f[205][205];
int read()
{
int res=0;char ch=getchar();
while (ch<'0'||ch>'9') ch=getchar();
while (ch>='0'&&ch<='9') res=(res<<1)+(res<<3)+(ch-'0'),ch=getchar();
return res;
}
bool cmp(node x,node y)
{
return x.end<y.end;
}
int main()
{
freopen("apple.in","r",stdin);
freopen("apple.out","w",stdout);
n=read();m=read();h=read();k=read();
for (int i=1;i<=n;++i)
{
x=read();x-=h;
if (x<0) continue;
++a[x];
}
for (int i=1;i<=1000000;++i)
a[i]+=a[i-1];
for (int i=1;i<=m;++i)
c[i].begin=read(),c[i].end=read();
sort(c+1,c+1+m,cmp);
f[1][1]=a[c[1].end]-a[max(0,c[1].begin-1)];
ans=f[1][1];
for (int i=2;i<=m;++i)
{
f[i][1]=a[c[i].end]-a[max(0,c[i].begin-1)];
ans=max(ans,f[i][1]);
for (int j=2;j<=min(i,k);++j)
{
for (int k=1;k<i;++k)
f[i][j]=max(f[i][j],f[k][j-1]+a[c[i].end]-a[max(c[k].end+1,c[i].begin)-1]);
ans=max(ans,f[i][j]);
}
}
printf("%d\n",ans);
fclose(stdin);
fclose(stdout);
return 0;
}

最新文章

  1. asp.net获取服务端和客户端信息
  2. BZOJ1068: [SCOI2007]压缩
  3. android手势创建及识别
  4. Node.js爬虫抓取数据 -- HTML 实体编码处理办法
  5. (转)一网打尽当下NoSQL类型、适用场景及使用公司
  6. 通过一次实验来了解HTML5的 Web Worker
  7. JAVA-前台编码,后台解码
  8. shadowgun的飘扬旗帜shader
  9. linux的学习系列 10---vi
  10. 使用DFA算法对敏感词进行过滤
  11. spring boot认识
  12. C语言 &gt; 构造素数表
  13. .net webapi 接收 xml 格式数据的三种情况
  14. Kafka监控KafkaOffsetMonitor【转】
  15. Flutter - 本地化语言
  16. 【SQL】from a,b。表a 和b之间是什么关系?
  17. flask项目结构(六)快速开发后台flask-admin
  18. Sencha Touch 实战开发培训 视频教程 第二期 第二节
  19. [NOI.AC]COUNT(数学)
  20. 禁用AxWebBrowser右键菜单

热门文章

  1. python测试报告输出 htmltestrunner 及 中文乱码的解决方式
  2. mkdir()和mkdirs()区别
  3. 使用webapi绑定layui数据表格完整增删查改记录
  4. vscode搭建c++环境
  5. Vue常用性能优化
  6. python_super()及继承顺序
  7. mds/journal.cc: 2929: FAILED assert解决
  8. 学习一下 Spring Security
  9. NUC972当检测到sd卡时,在sd卡驱动中操作gpio开启sd卡的电源,解决sd卡因低电压有时识别不正常的问题
  10. Unity CommandBuffer物体轮廓