题目描述

在一条水平路边,有 n 个钓鱼湖,从左到右编号为1,2,...,n 。佳佳有 h 个小时的空余时间,他希望利用这个时间钓到更多的鱼。他从1  出发,向右走,有选择的在一些湖边停留一定的时间(是 5 分钟的倍数)钓鱼。最后在某一个湖边结束钓鱼。佳佳从第 i 个湖到第 i+1 个湖需要走 5*t_i 分钟路,还测出在第 i 个湖停留,第一个 5 分钟可以钓到 f_i 条鱼,以后每再钓 5 分钟,可以钓到的鱼量减少 d_i,若减少后的鱼量小于 0,则减少后的鱼量为 0 。为了简化问题,佳佳假定没有其他人钓鱼,也没有其他因素影响他钓到期望数量的鱼。请编程求出佳佳最多能钓鱼的数量。

输入格式

第一行一个整数n ,表示湖的个数

第二行一个整数 h,表示佳佳的空闲时间

第三行有 n 个整数,依次表示每个湖第一个 5 分钟能钓到鱼的数量

第四行有 n 个整数,依次表示以后的每5分钟钓鱼数量比前一个 5 分钟钓鱼数量减少的数量

第五行有 n-1 个整数,t_i 表示由第 i 个湖到第 i+1 个湖需要花 5*t_i 分钟的路程

输出格式

输出只有一行,表示佳佳最多能钓鱼的数量。

样例

样例输入

3
1
4 5 6
1 2 1
1 2

样例输出

35

数据范围与提示

对于 100% 的数据2<=n<=100,1<=h<=20。

____________________________________________________

一本通上有这个练习题,很经典。可以用贪心加上堆来做,也可以用动态规划来做。

这个题木主要练习了一下vector的调试输出。

比较新的gdb是可以直接用print来进行输出的

p myvector

如果是比较老的gdb当然也可以用其他方法输出,但是我觉得还是编写一个函数,在用print或者call来调用比较好。

代码如下:

void p(vector<node>&q)
{
for(int i=0;i<q.size();++i)cout<<'{'<<q[i].v<<' '<<q[i].d<<"},";
cout<<endl;
}

  调用的格式为

p p(myvector)

或者

call p(myvector)

____________________________________________________

 1 #include <bits/stdc++.h>
2 using namespace std;
3 const int maxn = 105;
4 int n, h;
5 struct node {
6 int v, d;
7 bool operator<(const node &x) const { return v < x.v; }
8 };
9 vector<node>q;
10 node sz[maxn];
11 int dis[maxn];
12 int ans;
13 //void p(vector<node>&q);
14
15 int main() {
16 scanf("%d%d", &n, &h);
17 h *= 12;
18 for (int i = 1; i <= n; ++i) scanf("%d", &sz[i].v);
19 for (int i = 1; i <= n; ++i) scanf("%d", &sz[i].d);
20 for(int x,i=2;i<= n;++i)
21 {
22 scanf("%d",&x);
23 dis[i]=dis[i-1]+x;
24 }
25 for(int i=1;i<=n;++i)//枚举最远的鱼塘
26 {
27 int hh=h-dis[i];//剩余的时间
28 int tans=0;
29 while(!q.empty())q.pop_back();
30 for(int j=1;j<=i;++j)
31 {
32 q.push_back(sz[j]);
33 push_heap(q.begin(),q.end());
34 }
35 for(int j=1;j<=hh;++j)
36 {
37 node tp=q[0];
38 pop_heap(q.begin(),q.end());
39 q.pop_back();
40 if(tp.v>0)
41 {
42 tans+=tp.v;
43 tp.v-=tp.d;
44 q.push_back(tp);
45 push_heap(q.begin(),q.end());
46 }
47 else break;
48 }
49 ans=max(ans,tans);
50 }
51 cout<<ans;
52
53 return 0;
54 }
55 /*
56 void p(vector<node>&q)
57 {
58 for(int i=0;i<q.size();++i)cout<<'{'<<q[i].v<<' '<<q[i].d<<"},";
59 cout<<endl;
60 }
61 */

loj10009钓鱼___vector的调试的更多相关文章

  1. loj10009 P1717 钓鱼

    P1717 钓鱼 贪心+优先队列 先枚举最后走到哪个湖,然后用优先队列跑一遍贪心即可 #include<iostream> #include<cstdio> #include& ...

  2. vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结

    vue—你必须知道的   目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...

  3. 钓鱼小技巧-XLM

    前言 XLM钓鱼不是一项新的技术,自从公开以后,网上有很多对其的分析文章,这里仅仅做一个分享和摸索记录.文章中有问题的地方还请指出. 一个简单的例子 新建一个excel表格,右键选择表,选择插入 插入 ...

  4. C# Web应用调试开启外部访问

    在用C#开发Web应用时有个痛点,就是本机用VS开启Web应用调试时外部机器无法访问此Web应用.这里将会介绍如何通过设置允许局域网和外网机器访问本机的Web应用. 目录 1. 设置内网访问 2. 设 ...

  5. NodeJs之调试

    关于调试 当我们只专注于前端的时候,我们习惯性F12,这会给我们带来安全与舒心的感觉. 但是当我们使用NodeJs来开发后台的时候,我想噩梦来了. 但是也别泰国担心,NodeJs的调试是很不方便!这是 ...

  6. 微信公众号开发之VS远程调试

    目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...

  7. 【社工】NodeJS 应用仓库钓鱼

    前言 城堡总是从内部攻破的.再强大的系统,也得通过人来控制.如果将入侵直接从人这个环节发起,那么再坚固的防线,也都成为摆设. 下面分享一个例子,利用应用仓库,渗透到开发人员的系统中. 应用仓库 应用仓 ...

  8. 写出易调试的SQL(修订版)

    h4 { background: #698B22 !important; color: #FFFFFF; font-family: "微软雅黑", "宋体", ...

  9. tomcat开发远程调试端口以及利用eclipse进行远程调试

    一.tomcat开发远程调试端口 方法1 WIN系统 在catalina.bat里:  SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compi ...

随机推荐

  1. springboot 日期参数前后台转换问题

    方式 一: 在实体类上加@DatetimeFormat与@JsonFormat注解 @DatetimeFormat:将前台日期字符串转换成Date格式 @DateTimeFormat(pattern= ...

  2. 30天自制OS(linux环境)-day1

    30天自制OS(linux环境)--第一天 我是在CentOS的环境上面实现的,使用ubuntu的环境也是类似的 第一步:因为要对二进制文件进行编辑,所以安装二进制编辑器hexedit(当然其他的也可 ...

  3. 手撕redis分布式锁,隔壁张小帅都看懂了!

    前言 上一篇老猫和小伙伴们分享了为什么要使用分布式锁以及分布式锁的实现思路原理,目前我们主要采用第三方的组件作为分布式锁的工具.上一篇运用了Mysql中的select ...for update实现了 ...

  4. .NET Core 中的日志与分布式链路追踪

    目录 .NET Core 中的日志与分布式链路追踪 .NET Core 中的日志 控制台输出 非侵入式日志 Microsoft.Extensions.Logging ILoggerFactory IL ...

  5. MySQL 标识符到底区分大小写么——官方文档告诉你

    最近在阿里云服务器上部署一个自己写的小 demo 时遇到一点问题,查看 Tomcat 日志后定位到问题出现在与数据库服务器交互的地方,执行 SQL 语句时会返回 指定列.指定名 不存在的错误.多方查证 ...

  6. 百度智能(文本识别),API传图OC代码与SDK使用

    百度智能中的文本识别中的身份证识别,有API方式和SDK方式 API方式 百度智能(文本识别),百度API传图没有提供OC的示例,这里提供一下 - (void)OCTest:(NSString*)to ...

  7. 【JavaWeb】EL 表达式

    EL 表达式 简介 EL(Expression Language),即表达式语言. EL 表达式主要是代替 jsp 页面中 表达式脚本 在 jsp 页面中进行数据的输出,因为 EL 表达式在输出数据的 ...

  8. 【C++】《Effective C++》第八章

    第八章 定制new和delete 对于程序开发来说,了解C++内存管理例程的行为是非常重要的.其中两个主角是分配例程和归还例程(operator new和operator delete),配角是new ...

  9. Sentry(v20.12.1) K8S 云原生架构探索,SENTRY FOR JAVASCRIPT Source Maps 详解

    系列 Sentry-Go SDK 中文实践指南 一起来刷 Sentry For Go 官方文档之 Enriching Events Snuba:Sentry 新的搜索基础设施(基于 ClickHous ...

  10. Java开发手册之编程规约

    时隔一年多,再次开始更新博客,各位粉丝们久等了.大家是不是以为我像大多数开发者一样三分钟热度,坚持了一年半载就放弃了,其实不是.在过去的一年时间我学习了<Java编程思想>这本书,因为都是 ...