HLJU 1046: 钓鱼(数据增强版) (贪心+优化)

1046: 钓鱼(数据增强版)

Time Limit: 1 Sec  Memory Limit:
128 MB

Submit: 11  Solved: 3

[Submit][Status][Web Board]

Description

在一条水平路边,有n个钓鱼湖。从右到左编号为1、2、3……、n。

佳佳有H个小时的空余时间。他希望用这些时间尽可能多的钓鱼。他从湖1出发,向右走,有选择的在一些湖边停留一定时间钓鱼。最后在某一湖边结束钓鱼。

佳佳測出从第i个湖到第i+1个湖须要走Ti分钟的路,还測出在第i个湖边停留,第一个5分钟能够钓到鱼Fi。以后再每钓5分钟鱼,鱼量降低Di。若时间不足5分钟则无法完毕钓鱼。为了简化问题,佳佳假定没有其它人钓鱼,也不会有其它影响因素影响他钓到期望数量的鱼。请编程求出能钓最多鱼的方案。

Input

包括多组測试例子,以文件尾为结束。

第一行输入两个整数,n(2<=n<=1000)和时间 H(1<=H<=30)

第二行输入n-1个整数。T1、T2、……、Tn-1. (0<=Ti<=1000)

第三行输入n个整数。F1、F2、……、Fn. (0<=Fi<=1000)

第四行输入n个整数,D1、D2、……、Dn. (0<=Di<=1000)

Output

输出最大的钓鱼数量,每一个输出占一行

Sample Input

3 1
40 10
70 70 70
5  5  5
3 1
20 20
100 50 70
50 20 30

Sample Output

510
270

HINT

例子一:在湖1钓鱼60分钟。70+65+……+15=510

例子二:在湖1钓鱼10分钟。

0+100+50=150

前往湖2花费20分钟。

在湖2钓鱼5分钟。150+50=200

前往湖3花费20分钟。

在湖3钓鱼5分钟。200+70=270

Source

tyh

解析:同POJ 1042 Gone Fishing (贪心)(刘汝佳黑书)

但稍有不同的是。数据范围大了点。原来用priority_queue的代码TLE,因为非常多次的插入操作,导致priority_queue的效率体现的不明显。所以直接替换掉,用最朴素的方法反而更快点。

AC代码:

#include <algorithm>
#include <queue>
#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;

const int maxn = 1002;

int t[maxn], f[maxn], d[maxn];

struct node{
    int f;
    int d;
};

node fish[maxn], p[maxn];

int main(){
    #ifdef sxk
        freopen("in.txt", "r", stdin);
    #endif // sxk

    int n, h;
    while(scanf("%d%d", &n, &h)!=EOF){
        h = h * 60;
        for(int i=1; i<=n-1; i++) scanf("%d", &t[i]);
        for(int i=1; i<=n; i++) scanf("%d", &fish[i].f);
        for(int i=1; i<=n; i++) scanf("%d", &fish[i].d);
        int maxans = 0;
        for(int i=1; i<=n; i++){
            int tc = 0;
            for(int j=1; j<i; j++) tc += t[j];
            for(int j=1; j<=i; j++) p[j] = fish[j];   //直接用数组取代priority_queue
            int ans = 0;
            int th = (h - tc) / 5;
            for(int j=1; j<=th; j++){
                int foo = 1;
                for(int k=1; k<=i; k++)     //遍历找最大值
                    if(p[k].f > p[foo].f) foo = k;
                ans += p[foo].f;
                p[foo].f -= p[foo].d;
                if(p[foo].f < 0) p[foo].f = 0;
            }
            if(maxans < ans) maxans = ans;
        }
        printf("%d\n", maxans);
    }
    return 0;
}
时间: 2024-12-18 03:20:04

HLJU 1046: 钓鱼(数据增强版) (贪心+优化)的相关文章

将表里的数据批量生成INSERT语句的存储过程 继续增强版

文章继续 桦仔兄的文章 将表里的数据批量生成INSERT语句的存储过程 增强版 继续增强... 本来打算将该内容回复于桦仔兄的文章的下面的,但是不知为何博客园就是不让提交!.... 所以在这里贴出来吧,算作继续增加文章中解决的:根据查询条件自动生成插入脚本的需求,其实这种需求还是蛮常见的. 本文着重解决了文中的脚本的schema问题,给调整了下,现在脚本能自动识别出不同的schema下同名的表的语句 修改后脚本如下: -- Author: <桦仔> -- Blog: <http://ww

将表里的数据批量生成INSERT语句的存储过程 增强版

原文:将表里的数据批量生成INSERT语句的存储过程 增强版 将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中 目前SQL Server里面是没有相关的工具根据查询条件来生成INSERT语句的,只有借助第三方工具(third party tools) 这种脚本网上也有很多,但是网上的脚本还是欠缺一些规范和功能,例如:我只想导出特定查询条件的数据,网上的脚本都是导出全表数据 如果表很大,对性能会有很大影响

C#_.NetCore_WebAPI项目_EXCEL数据导出(ExcelHelper_第二版_优化逻辑)

原文:C#_.NetCore_WebAPI项目_EXCEL数据导出(ExcelHelper_第二版_优化逻辑) 项目需要引用NPOI的Nuget包:DotNetCore.NPOI-v1.2.2 本篇文章是对WebAPI项目使用NPOI操作Excel时的帮助类:ExcelHelper的改进优化做下记录: 备注:下面的帮助类代码使用的文件格式为:xlsx文件,xlsx相对xls的优缺点代码里有注释,推荐使用xlsx文件保存数据! using Microsoft.AspNetCore.Mvc; usi

136-KC705E 增强版 基于FMC接口的Xilinx Kintex-7 FPGA K7 XC7K325T PCIeX8 接口卡

KC705E 增强版 基于FMC接口的Xilinx Kintex-7 FPGA K7 XC7K325T PCIeX8 接口卡 一.板卡概述 本板卡基于Xilinx公司的FPGAXC7K325T-2FFG900 芯片,pin_to_pin兼容FPGAXC7K410T-2FFG900 ,支持PCIeX8.64bit DDR3容量2GByte,HPC的FMC连接器,板卡支持各种接口输入,软件支持windows,Linux驱动. 二.功能和技术指标:   支持1路PCIe X8 支持PCI Expres

系统垃圾清理利器CCleaner v5.30.6063绿色单文件版(增强版)

系统垃圾清理利器CCleaner现已更新至v5.30.6063,此次更新为Edge.IE浏览器提供了更好的清理功能,更新了Windows Explorer MRU清理功能,同时改善了应用程序中的SSD检测.5.0版全新Modren UI界面设计,简洁大气!内部框架大优化,性能大提升!支持主动防御及监控! CCleaner是梨子公司Piriform最为著名广受好评的软件,系统垃圾清理工具,免费的系统清理优化和隐私保护工具,也是该公司主打和首发产品!它体积小巧.运行速度极快,具有强大的自定义清理规则

VC709E 增强版 基于FMC接口的Xilinx Vertex-7 FPGA V7 XC7VX690T PCIeX8 接口卡

VC709E 增强版 基于FMC接口的Xilinx Vertex-7 FPGA V7 XC7VX690T PCIeX8 接口卡 一.板卡概述       本板卡基于Xilinx公司的FPGA XC7VX690T-FFG1761 芯片,支持PCIeX8.64bit DDR3容量2GByte,HPC的FMC连接器,板卡支持各种接口输入,软件支持windows. 二.功能和技术指标:     1.标准PCI-E接口,支持PCI-E 8x,支持PCI-E 3.0.    2.标准FMC-HPC接口,VA

办公软件套装 MSDN Office 2016 专业增强版

Microsoft Office 2016 是微软推出的又一代全新的办公自动化软件套装,其开发代号为 Office 16,实际上是第十四个发行版本,目前微软针对该套装在订户下载专区仅提供专业增强版,其将维持用户一直以来熟悉的操作体验,非常适合配备鼠标键盘的电脑使用. Office 2016 延续了 Office 2013 的扁平化用户界面设计,同时也和 Windows 10 有重要的整合,包括 Windows Hello 支持.Cortana 可以通过 Outlook 2016 获取到你的信息和

最新深度技术GHOST XP系统旗舰增强版 V2016年

来自系统妈:http://www.xitongma.com 深度技术GHOST xp系统旗舰增强版 V2016年 系统概述 深度技术ghost xp系统旗舰增强版集合微软JAVA虚拟机IE插件,增强浏览网页时对JAVA程序的支持,添加安装华文行楷.华文新魏.方正姚体.汉真广标等常用字体.以系统稳定为第一制作要点,收集市场常用硬件驱动程序,安装维护方便快速 - 集成常见硬件驱动,智能识别+预解压技术,绝大多数硬件可以快速自动安装相应的驱动.加快“网上邻居”共享速度:取消不需要的网络服务组件,系统支

新大陆PT850/PT853 对接 方象2000 增强版

下图为TI C6xx DSP Nyquist总线拓扑图,总线连接了master与slave,提供了高速的数据传输.有很多种速率不同的总线,如图中的红色方框,最高速总线为CPU/2 TeraNet SCR(即VBUSM SCR),带宽为256bit,其他低速总线为CPU/3,CPU/6,带宽参考图中所示.总线之间用Bridge(桥)连接,作用包括转换总线的速率,使之与所流向总线的速率相同等. 在具体应用中,各种速率的总线完全可以满足复杂的数据传输,而数据传输的瓶颈往往在于连接总线之间的Bridge