POJ 3265 模拟 贪心 的错误用法

本文探讨了一种复杂多阶段决策问题的解决方法,通过对比贪心算法和动态规划,揭示了贪心算法在当前利益最大化时可能忽视长远利益的问题,并通过动态规划方法找到了最优解。详细介绍了动态规划的实现过程和代码,最终通过实例验证了方法的有效性。

http://poj.org/problem?id=3265

题目大意:有P (1 <= P <= 300) 道题目(必须依次完成)、月薪是M (1 <= M <= 1000) 元。要雇帮手来答题,可以解决一个月内的所有题目,第一笔A_i(1 <= A_i <= M)元在做题的那一个月初支付,第二笔B_i元(1 <= B_i <= M)在做完后的下一个月初支付。每一个月牛们用上一个月挣的钱来付款,且不会节余给下一个月。求做完所有题目并支付完所有款项的最短月数。


我第一演看上去就坚定不移的认为这个是贪心于是高高兴兴写了个,样例通过,提交!WA....

当时我无法理解为什么错了,很明显啊,有钱就尽量用,Oct gap 201大神给我了一个数据:

4 3
1 2
1 2
1 2

很明显:最优是 第二天做一个 然后 第三天做完 这样只要4天

但是贪心的话 第二天做了1 2 第三天不干事情 第四天做3 这样要5天..

为什么会多出来一天?很明显 是因为贪心没有考虑到后面的情况,原来可以将后面一天的时间搭配,充分利用,但是贪心只注重了当前的利益,而忽略了长远的利益.....

于是只能乖乖写DP了.

貌似有2种DP方法,我用的是:

F[I,J]表示做了[1,J]在最后一个月里已经首付了[I,J]的情况下最短的月数,

F[I,J]:=MIN{F[K,I-1]+1|A[J]-A[I-1]+B[I-1]-B[K-1]<M,F[K,I-1]+2|A[J]-A[I-1]<=M and B[I-J]-B[K-1]<=M} (B[J]-B[I-1]<=M)A B 分别为前缀和

答案是F[I,N]中最小的一个


code:

var
  n,m,i,j,k,x,y,ans:longint;
  f:array[0..500,0..500] of longint;
  a,b:array[-5..1000] of longint;
begin
  read(m,n);
  fillchar(f,sizeof(f),0);
  fillchar(a,sizeof(a),0);
  fillchar(b,sizeof(b),0);
  f[0,0]:=1;
  for i:=1 to n do
    begin
	  read(x,y);
	  a[i]:=a[i-1]+x;
	  b[i]:=b[i-1]+y;
	end;
  for i:=1 to n do
    for j:=i to n do
	  if ((a[j]-a[i-1])<=m) and  ((b[j]-b[i-1])<=m) then
	    begin
		  x:=a[j]-a[i-1];
		  f[i,j]:=maxlongint;
		  for k:=0 to i-1 do
		    begin
			  if (f[k,i-1]>0) and ((x+b[i-1]-b[k-1])<=m) then
		        if (f[k,i-1]+1)<f[i,j] then f[i,j]:=f[k,i-1]+1;
			  if (f[k,i-1]>0) and ((b[i-1]-b[k-1])<=m) then
			    if (f[k,i-1]+2)<f[i,j] then f[i,j]:=f[k,i-1]+2;
			end;
		  if f[i,j]=maxlongint then f[i,j]:=0;
		end;
  ans:=maxlongint;
  for i:=1 to n do
    if (f[i,n]>0) and (f[i,n]<ans) then ans:=f[i,n];
  ans:=ans+1;
  writeln(ans);
end.


没几天就有NOIP成绩了。。求不爆!求RP++跪求400+!!!!!!!!!!!!!!!!!!


数据集介绍:垃圾分类检测数据集 一、基础信息 数据集名称:垃圾分类检测数据集 图片数量: 训练集:2,817张图片 验证集:621张图片 测试集:317张图片 总计:3,755张图片 分类类别: - 金属:常见的金属垃圾材料。 - 纸板:纸板类垃圾,如包装盒等。 - 塑料:塑料类垃圾,如瓶子、容器等。 标注格式: YOLO格式,包含边界框和类别标签,适用于目标检测任务。 数据格式:图片来源于实际场景,格式为常见图像格式(如JPEG/PNG)。 二、适用场景 智能垃圾回收系统开发: 数据集支持目标检测任务,帮助构建能够自动识别和分类垃圾材料的AI模型,用于自动化废物分类和回收系统。 环境监测与废物管理: 集成至监控系统或机器人中,实时检测垃圾并分类,提升废物处理效率和环保水平。 学术研究与教育: 支持计算机视觉与环保领域的交叉研究,用于教学、实验和论文发表。 三、数据集优势 类别覆盖全面: 包含三种常见垃圾材料类别,覆盖日常生活中主要的可回收物类型,具有实际应用价值。 标注精准可靠: 采用YOLO标注格式,边界框定位精确,类别标签准确,便于模型直接训练和使用。 数据量适中合理: 训练集、验证集和测试集分布均衡,提供足够样本用于模型学习和评估。 任务适配性强: 标注兼容主流深度学习框架(如YOLO等),可直接用于目标检测任务,支持垃圾检测相关应用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值