$n \leq 10000$个盒子,有高度,高度总和$\leq 10000$,盒子有重要的和不重要的,问最多有多少重要盒子的底端在区间$[L,R]$。

这是个入门级的DP,但需要一点胆量MD这题能放DIV1E。。

放盒子顺序:不重要的,重要的,然后乱放。不重要的可以无脑放,但重要的需要一定的顺序。。

其实重要的盒子按从大到小的顺序无脑叠就行了。。为啥。。

如果是在$L$处的话,那大的堆下面可以把小的送上去;如果是在$L,R$间,那顺序无所谓;如果是在$R$处,先大再小肯定不优,但我们是在01背包,因此大的那个完全可以丢掉。。

有个小问题,底端算答案有点难,不如把整个问题倒过来用顶端算贡献。

为啥这题都不会啊有没有大佬来拯救一下QAQ

 #include<stdio.h>
#include<string.h>
#include<stdlib.h>
//#include<math.h>
//#include<queue>
//#include<vector>
#include<algorithm>
#include<iostream>
//#include<assert.h>
using namespace std; int n,L,R,H;
#define maxn 10011
int f[maxn],a[maxn],la=,b[maxn],lb=,c[maxn];
bool cmp(const int &a,const int &b) {return a>b;} int main()
{
scanf("%d%d%d",&n,&L,&R);
for (int i=;i<=n;i++) scanf("%d",&c[i]),H+=c[i];
L^=R^=L^=R; L=H-L; R=H-R;
for (int i=,x;i<=n;i++) {scanf("%d",&x); if (x) b[++lb]=c[i]; else a[++la]=c[i];} for (int i=;i<=H;i++) f[i]=-0x3f3f3f3f; f[]=;
for (int i=;i<=la;i++)
for (int j=H;j>=a[i];j--)
f[j]=max(f[j],f[j-a[i]]); sort(b+,b++lb,cmp);
for (int i=;i<=lb;i++)
for (int j=H;j>=b[i];j--)
f[j]=max(f[j],f[j-b[i]]+(L<=j && j<=R));
// for (int i=0;i<=H;i++) cout<<f[i]<<' ';cout<<endl; int ans=;
for (int i=;i<=H;i++) ans=max(ans,f[i]);
printf("%d\n",ans);
return ;
}

最新文章

  1. RCurl getURL()函数做debug
  2. adbWireless 简单教程
  3. Laravel-Administrator enum使用数字key
  4. 网站前端优化 -saveForSelf
  5. hdu 1506 Largest Rectangle in a Histogram(单调栈)
  6. openNebula libvirt-virsh attach disk device for kvm
  7. VC多线程编程
  8. android自定义控件,其三个父类构造方法有什么区别
  9. python中关于局部变量与全局变量的认识
  10. Oracle函数整理
  11. php中常用的字符串截取函数mb_substr实例解释
  12. Windbg+VirtualBox双机调试环境配置(XP/Win7/Win10)
  13. 笔记:Maven 依赖及配置详解
  14. winfrom程序Datagridview列名问题
  15. 《C#并发编程经典实例》学习笔记—2.1 暂停一段时间
  16. Python面试题之Python面试题汇总
  17. 绿色版mssql
  18. Altium Designer Summer 09换成中文步骤
  19. day 05 字典,字典嵌套
  20. Gnome排序

热门文章

  1. ImportError: No module named flask.ext.wtf 解决方法
  2. 2017四川省赛E题( Longest Increasing Subsequence)
  3. 怎么在webstorm中设置代码模板
  4. 如何解决webpack中css背景图片的绝对地址
  5. c语言产生随机数的方法
  6. PAT (Basic Level) Practise (中文)-1029. 旧键盘(20)
  7. grub加密。
  8. grep理解
  9. PAT Basic 1069
  10. git commit 含有中文的代码,提示Warnning:Your console font probably doesn&#39;t support Unicode.......