首页 > 其他分享 >鱼塘钓鱼(fishing)

鱼塘钓鱼(fishing)

时间:2023-02-07 13:04:07浏览次数:59  
标签:钓鱼 int 钓到 鱼塘 分钟 fishing maxxx


鱼塘钓鱼(fishing)

时间限制: 1000 ms        内存限制: 65536 KB
提交数: 149     通过数:81

 

三种做法:

纯贪心做法

堆维护

DP

【题目描述】

有N个鱼塘排成一排(N<100),每个鱼塘中有一定数量的鱼,例如:N=5时,如下表:

鱼塘编号每1分钟能钓到的鱼的数量(1..1000)每1分钟能钓鱼数的减少量(1..100)当前鱼塘到下一个相邻鱼塘需要的时间(单位:分钟)11023214453206441654593鱼塘编号12345每1分钟能钓到的鱼的数量(1..1000)101420169每1分钟能钓鱼数的减少量(1..100)24653当前鱼塘到下一个相邻鱼塘需要的时间(单位:分钟)3544

即:在第1个鱼塘中钓鱼第1分钟内可钓到10条鱼,第2分钟内只能钓到8条鱼,……,第5分钟以后再也钓不到鱼了。从第1个鱼塘到第2个鱼塘需要3分钟,从第2个鱼塘到第3个鱼塘需要5分钟,……

给出一个截止时间T(T<1000),设计一个钓鱼方案,从第1个鱼塘出发,希望能钓到最多的鱼。

假设能钓到鱼的数量仅和已钓鱼的次数有关,且每次钓鱼的时间都是整数分钟。

【输入】

共5行,分别表示:

第1行为N;

第2行为第1分钟各个鱼塘能钓到的鱼的数量,每个数据之间用一空格隔开;

第3行为每过1分钟各个鱼塘钓鱼数的减少量,每个数据之间用一空格隔开;

第4行为当前鱼塘到下一个相邻鱼塘需要的时间;

第5行为截止时间T。

【输出】

一个整数(不超过231−1231−1),表示你的方案能钓到的最多的鱼。

【输入样例】

5

10 14 20 16 9

2 4 6 5 3

3 5 4 4

14

【输出样例】

76

【来源】

​No​

【算法分析】

 

我们现在假设最后在第i个鱼塘钓到鱼数目最多,那么用在路上的时间是固定的,原因:我们不会先跑到第i个鱼塘里钓一分钟然后返回前一个鱼塘里钓鱼,这样路上会消耗大量时间,不划算,还有就是我们再没有去到某个鱼塘前,鱼的数量不会减少。所以我们可以看出从左到右的顺序钓鱼,即一个人在1~i-1个鱼塘之间随便走动,只要尽可能选择鱼多的就行。其实这里不是模拟钓鱼过程,而是统计在各个鱼塘的钓鱼次数。

【代码实现】

#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,fish[101],dc[101],t[101],tot;
cin>>n;
for(int i=1;i<=n;i++)scanf("%d",&fish[i]);
for(int i=1;i<=n;i++)scanf("%d",&dc[i]);
for(int i=1;i<n;i++)scanf("%d",&t[i]);
cin>>tot;
int t1=0,maxx=0;
for(int k=1;k<=n;k++)//枚举每个池塘为最后的钓鱼池塘
{
int time;
time=tot-t1; //减去路程时间
int ans=0;//计算鱼的总量
int a[101];
for(int i=1;i<=k;i++)
a[i]=fish[i];//复制前几个鱼塘信息
while(time>0)
{
a[0]=0;
int maxxx=0;
for(int i=1;i<=k;i++)
if(a[maxxx]<a[i])
maxxx=i;
if(maxxx==0) break;
ans+=a[maxxx];//钓鱼
a[maxxx]-=dc[maxxx];//鱼减少
time--;

}
maxx=max(maxx,ans);
t1+=t[k];//路程提前计算
}
cout<<maxx<<endl;
return 0;
}


 

标签:钓鱼,int,钓到,鱼塘,分钟,fishing,maxxx
From: https://blog.51cto.com/u_14932227/6041995

相关文章

  • STL 堆 鱼塘钓鱼
    鱼塘钓鱼(fishing)时间限制:1000ms      内存限制:65536KB提交数:150   通过数:82 ​​纯贪心做法​​STL+堆dp【题目描述】有N个鱼塘排成一排(N<100),每......
  • 记一次免杀马的钓鱼实践
    记一次免杀马的钓鱼实践学了一寒假免杀,终于算达到了年前定的目标:玩一玩兄弟的电脑   这次使用shellcode转UUID,回调函数加载,加壳的方式对cs的64位shellcode做了处理......
  • DNS欺骗:网站克隆实现网站钓鱼攻击
    1DNS1.1DNS是什么?域名系统(DomainNameSystem)是互联网使用的命名系统,用来将主机域名转换为ip地址,属于应用层协议,使用UDP传输。1.2为什么需要DNS?DNS协议提供域......
  • CobaltStrike钓鱼攻击
    木马  cs可以生成HTA木马、office宏木马以及exe木马      HTA木马  HTA是HTMLApplication的缩写,直接将HTML保存成HTA的格式,是一个独立的应用软件。HTA虽然......
  • HTTPS 钓鱼攻击:黑客如何使用 SSL 证书假装信任
    让我们回到1994年。无需翻出寻呼机或穿上法兰绒衬衫。这是第一个SSL协议诞生的一年。它由Netscape推出,以满足对称为Internet的新奇发明增加安全性的日益增长的需......
  • HTTPS 钓鱼攻击:黑客如何使用 SSL 证书假装信任
    让我们回到1994年。无需翻出寻呼机或穿上法兰绒衬衫。这是第一个SSL协议诞生的一年。它由Netscape推出,以满足对称为Internet的新奇发明增加安全性的日益增长的需......
  • 关于kali如何安装Fluxion并且WiFi钓鱼步骤超详细(我安装遇到的坑都在里面)
    前情提示WiFi钓鱼用kali首先你需要一个适配kali的无线网卡这点很重要我买的这个(绝对没有恰烂钱,毕竟人家也不给我钱,网店叫“深圳浠创科技”还有其他款式可以问客服买其他型......
  • 利用木马钓鱼渗透浏览器漏洞靶机
    1准备环境win7虚拟机:192.168.225.140cn_windows_7_ultimate_x64_dvd_x15-66043.isokali2020.4:192.168.225.138kali-linux-2020.4-vmware-amd64.7z如果ssh连接不到kal......
  • 针对某钓鱼网站的渗透测试
    微信公众号文章同步于微信公众号:苏雅图的雨​前言上个星期,QQ邮箱收到一封钓鱼邮件。但这已经不是第一次,大概两年前就遇到过一次,差不多......
  • 魔兽世界钓鱼插件,致敬经典支持正式服和怀旧服
    因为软件需要调用键盘和鼠标去操作,而调用键盘鼠标这种行为在杀毒软件看来就是行为。实际上是没的。这种情况:就需要关闭杀毒软件和防火墙,重新右键管理员身份运行。启动后的正......