loj10009钓鱼___vector的调试
题目描述
在一条水平路边,有 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的调试的更多相关文章
- loj10009 P1717 钓鱼
P1717 钓鱼 贪心+优先队列 先枚举最后走到哪个湖,然后用优先队列跑一遍贪心即可 #include<iostream> #include<cstdio> #include& ...
- vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结
vue—你必须知道的 目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...
- 钓鱼小技巧-XLM
前言 XLM钓鱼不是一项新的技术,自从公开以后,网上有很多对其的分析文章,这里仅仅做一个分享和摸索记录.文章中有问题的地方还请指出. 一个简单的例子 新建一个excel表格,右键选择表,选择插入 插入 ...
- C# Web应用调试开启外部访问
在用C#开发Web应用时有个痛点,就是本机用VS开启Web应用调试时外部机器无法访问此Web应用.这里将会介绍如何通过设置允许局域网和外网机器访问本机的Web应用. 目录 1. 设置内网访问 2. 设 ...
- NodeJs之调试
关于调试 当我们只专注于前端的时候,我们习惯性F12,这会给我们带来安全与舒心的感觉. 但是当我们使用NodeJs来开发后台的时候,我想噩梦来了. 但是也别泰国担心,NodeJs的调试是很不方便!这是 ...
- 微信公众号开发之VS远程调试
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...
- 【社工】NodeJS 应用仓库钓鱼
前言 城堡总是从内部攻破的.再强大的系统,也得通过人来控制.如果将入侵直接从人这个环节发起,那么再坚固的防线,也都成为摆设. 下面分享一个例子,利用应用仓库,渗透到开发人员的系统中. 应用仓库 应用仓 ...
- 写出易调试的SQL(修订版)
h4 { background: #698B22 !important; color: #FFFFFF; font-family: "微软雅黑", "宋体", ...
- tomcat开发远程调试端口以及利用eclipse进行远程调试
一.tomcat开发远程调试端口 方法1 WIN系统 在catalina.bat里: SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compi ...
随机推荐
- 又一个小而美的Java 开发框架: Solon 1.2 新篇
Solon 1.2 发布后,取消了X类名前缀.故对此文做些调整. Solon 是Java世界里一个新的极易上手的Java开发框架.参考过 Javalin . Spring boot 等很多现有框架的设 ...
- 运行命令区分webpack环境,以及axios数据请求的封装
在开发环境和线上环境时,由于环境的不同,有时候需要修改一定的代码,可以通过配置webpack环境来减少对代码的修改:另外,有时候去看别人的代码,你可能都找不到他的数据请求在什么位置,最近在做一个vue ...
- Python输出HelloWorld(以及环境配置)
java usebean 用法: https://blog.csdn.net/zhang150114/article/details/89434617
- javaScript编写9*9口诀
学习html+css+javaScript<!DOCTYPE html> <html> <head> <title>chaoba</title&g ...
- 【Redis】内部数据结构自顶向下梳理
本博客将顺着自顶向下的思路梳理一下Redis的数据结构体系,从数据库到对象体系,再到底层数据结构.我将基于我的一个项目的代码来进行介绍:daredis.该项目中,使用Java实现了Redis中所有的数 ...
- ubuntu虚拟机启用双网卡IP配置
首先要登入自己的虚拟机,这里以ubuntu为例. 配置两块网卡,一块eth0为NAT模式,另一块为eth1仅主机模式 # 进入网卡配置页面vi /etc/network/interfaces # Th ...
- Vue——监听器watch
使用watch来侦听data中数据的变化,watch中的属性(watch是对象格式)一定是data 中已经存在的数据. 使用场景:数据变化时执行异步或开销比较大的操作. 典型应用:http://www ...
- jQuery 日常笔记
1.$(document).read(function(){$('p').click(function(){ $('p').hide();})})2.jquery是客户端脚本3.$("p&q ...
- python实现域名注册查询
author:摘繁华-蓝白社区 联合出品 域名生成与查询 文件说明: [x] .py源文件 [x] .exe可执行文件 [x] .config.json配置文件 ps: .exe和config.jso ...
- 利用dotnet-dump分析docker容器内存泄露
目录 一 运行官方示例 1,Clone代码并编译 2,创建Dockerfile构建镜像 3,启动容器 二 生成dump转储文件 1,制造问题 2,创建dump文件 三 分析dump文件 1,创建一个用 ...