1033. To Fill or Not to Fill (25)

1033 To Fill or Not to Fill (25 分) 贪心算法 题目 With highways available, driving a car from Hangzhou to any other city is easy. But since the tank capacity of a car is limited, we have to find gas stations on the way from time to time. Different... 阅读详情

加油事件的贪心选择模拟

#include<iostream>
#include<vector>
#include<algorithm>

typedef struct Station
{
	double dis;
	double price;
	bool operator<(const Station& other) const
	{
		return dis < other.dis;
	}
}Station;

double unit_gas;
int FindNeatestCheaperStation(int i, double gas, std::vector<Station>& s)
{
	int num = s.size();
	int min_index = i;
	for(int j = i+1; j < num && s[j].dis-s[i].dis <= gas*unit_gas; ++j)
	{
		if(s[j].price < s[min_index].price)
		{
			min_index = j;
			break;
		}
	}
	return min_index;
}

int GetFastestStation(int i, double gas, std::vector<Station>& s)
{
	int num = s.size();
	int max_index = i;
	for(int j = i+1; j < num && s[j].dis-s[i].dis <= gas*unit_gas; ++j)
	{
		max_index = j;
	}
	return max_index;
}

int main()
{
	double max_gas, total_dis;
	int n;
	while(scanf("%lf%lf%lf%d",&max_gas,&total_dis,&unit_gas,&n)!=EOF)
	{
		std::vector<Station> sVec(n);
		for(int i = 0; i < n; ++i)
			scanf("%lf %lf",&sVec[i].price,&sVec[i].dis);
		//sort station by distance
		std::sort(sVec.begin(), sVec.end());
		Station vir;
		vir.dis = total_dis;//add destination as a virtual station in the end
		sVec.push_back(vir);
		//algorithm core
		if(n==0 || sVec[0].dis > 0)//special case
			printf("The maximum travel distance = 0.00\n");
		else//greedy now
		{
			double remain_gas = 0.0;
			double cur_money = 0.0;
			int i;
			for(i = 0; i < n; )
			{
				int index;
				//1. using remain gas find nearest cheaper station
				index = FindNeatestCheaperStation(i, remain_gas, sVec);
				if(index != i)//find a station else
				{//get there
					remain_gas -= (sVec[index].dis-sVec[i].dis)/unit_gas;
					i = index;
					continue;
				}
				//2. using max_gas find nearest cheaper station
				index = FindNeatestCheaperStation(i, max_gas, sVec);
				if(index != i)//find a station else
				{//get there
					cur_money += ((sVec[index].dis-sVec[i].dis)/unit_gas-remain_gas)*sVec[i].price;
					remain_gas = 0.0;
					i = index;
					continue;
				}
				//3. get the max_gas and go as far as possible
				index = GetFastestStation(i, max_gas, sVec);
				if(index != i)
				{//can get some where
					cur_money += (max_gas-remain_gas)*sVec[i].price;
					remain_gas = max_gas-(sVec[index].dis-sVec[i].dis)/unit_gas;
					i = index;
					continue;
				}
				else 
				{
					printf("The maximum travel distance = %.2lf\n", sVec[i].dis+max_gas*unit_gas);
					break;
				}
			}//end of greedy
			if(i == n) printf("%.2lf\n", cur_money);
		}
		
	}
	return 0; 
}


 

1033 To Fill or Not to Fill (25分) 1033 To Fill or Not to Fill (25分) With highways available, driving a car from Hangzhou to any other city is easy. But since the tank capacity of a car is limited, we have to find gas stations on the way from time to time. Different gas station may give dif 阅读详情

相关推荐

别再只看读写速度了!聊聊手机闪存eMMC、UFS3.1和SSD背后的功耗与体积玄学

本文深入探讨手机闪存技术eMMC、UFS3.1和SSD在功耗与体积设计上的关键差异。通过对比接口技术、封装工艺和温度管理,揭示移动存储如何在有限空间内平衡性能与能效,为消费者提供选购参考。重点关注UFS3.1的差分信号设计和全双工架构带来的显著优势。

weixin_27061475的博客 448

【PAT(甲级)】1033 To Fill or Not to Fill(详细的解题思路)

【PAT(甲级)】1033 To Fill or Not to Fill(详细的解题思路) 题目给出油箱容量(C),目的地距离(D),平均每升汽油可以行驶的里程数(D_avg),加油站数量(N),然后还有每个加油站距离杭州的距离和油价。要求我们给出到达目的地时,怎么样加油最省钱(一开始的车是没有油的),如果到不了目的地,那么最远能开到哪里。 1. 自定义一个结构来存储加油站信息,将加油站由近到远排序。如果最近的加油站距离杭州不是0,那么直接输出。因为车一开始是没有油的,加油站在出生点没有的话,就没办法开。

weixin_55202895的博客 2113

Nginx反向代理HTTPS服务报错排查:The plain HTTP request was sent to HTTPS port

在Web服务架构中,反向代理是连接客户端与后端应用的关键组件,它通过转发请求实现负载均衡和安全隔离。其工作原理涉及监听端口、解析协议头部,并根据配置将请求路由至上游服务器。这一机制的技术价值在于提升系统可扩展性、简化部署,并增强安全性。在HTTPS场景下,代理服务器需正确处理SSL/TLS终止与传递,若配置不当,常引发协议不匹配问题。例如,当Nginx将解密后的HTTP请求转发至期待HTTPS的后端,或客户端直接向SSL端口发送明文请求时,便会出现经典报错“The plain HTTP request wa

weixin_33391446的博客 399

To Fill or Not to Fill(贪心算法)

有了高速公路,开车从杭州到任何其他城市都很容易。但由于汽车的油箱容量有限,我们必须不时地在路上找到加油站。

qq_42637799的博客 373

【点云数据集】整理汇总(自用,更新ing)

涵盖了各种不同的城市场景:教堂、街道、铁路轨道、广场、村庄、足球场、城堡等等。邮件地址:dmich-request@graphics.stanford.edu,内容需包含:1. 您的姓名、头衔或职位,以及所在机构或隶属关系;license比较难获取,目前可获取的人员:(1)目前隶属于大学、工业研究实验室或其他主要机构的已发表过研究成果的研究人员;普林斯顿 ModelNet 项目的目标是为计算机视觉、计算机图形学、机器人技术和认知科学领域的研究人员提供全面、干净的物体 3D CAD 模型集合。

weixin_44392103的博客 797

别再为镜面物体检测发愁了!手把手教你用PMD相位偏折术增强2.5D形状图细节(附Python代码)

本文详细解析了PMD相位偏折术在工业视觉中镜面物体检测的应用,通过2.5D成像方案增强形状图细节。文章提供了Python代码示例,介绍了一种计算高效的局部特征增强算法,帮助解决产线环境中的噪声问题,提升缺陷识别准确率。

weixin_29299807的博客 346

PAT甲级-贪心类型-1033 To Fill or Not to Fill解题思路

1033 To Fill or Not to Fill (25 分) 思路 该题是找出最便宜路线的价格,不能到达终点就输出最大到达路径即可。 注意细节:起点没有加油站,直接输出最大路径为0 具体做法:把终点设置为一个加油站,花费为0,距离最远。 在可以到达的前提下,寻找比当前更便宜的加油站,算好到达所用花费,若无比当前更便宜,需把油箱加满。 题型类似:这类贪心,寻找花费最少,需要用到sort,再用循环。 代码 #include<bits/stdc++.h> using namespace s

weixin_43999137的博客 490

Android逆向实战:通过smali/baksmali动态注入DEX逻辑

本文详细介绍了在无源码条件下对Android应用进行动态逻辑注入的实战方法。通过使用smali和baksmali工具对DEX文件进行反编译、修改与重打包,实现在目标方法中插入自定义代码(如日志打印),并分享了定位目标、处理寄存器、避免常见错误的实用技巧与避坑指南。

weixin_29008691的博客 364

PAT 1033. To Fill or Not to Fill (贪心)

PAT-A的最后一题,终于做出来了...  是贪心,通过局部最优获得全局最优。 1.

Stephen Wong的专栏 2284

密码学实战:如何利用生日攻击破解哈希函数

本文深入探讨了生日攻击在密码学中的应用及其对哈希函数的威胁。通过分析生日悖论的数学原理,揭示了哈希函数在实际应用中的脆弱性,并提供了防御策略,如升级哈希算法、正确使用加盐技术等。文章结合实战案例,帮助开发者理解如何有效防范此类攻击,确保系统安全。

weixin_42530732的博客 192

基于matlab的主成分分析的人脸二维码识别系统

人脸识别因其在系统安全验证、信用验证、刑侦跟踪、身份管理、视频会议、人机交互、智能家居等方面的巨大应用前景,成为当前模式识别和人工智能领域越来越热门的一个研究方向。随着安全入口控制和二维码智能扫描应用需求的快速增长,基于二维码识别的生物人脸统计识别技术也引起了人们的重视。本案例将详细讲解基于主成分分析的人脸特征提取的原理与方法,并将其与 QR 二维码的编解码进行结合,将 MATLAB 作为工具平台,调用 QR 二维码编解码应用程序,进而实现一个人脸二维码自动识别的系统原型。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 978

1033 To Fill or Not to Fill(25 分)

思路:关键在于贪心策略的选取 如果把终点也当做一个加油站处理,则代码可以简化很多 贪心策略详细描述,遍历在当前站点所能达到的所有站点,分两种情况讨论: 0.寻找比自己距离远的,到能够到达的最大距离之间的加油站,看他们的油价。如果找到了更低价格的油价,就加油到刚好能到达那个加油站的距离的油,然后去那个更低价格的加油站(有更低的我一分都不想多花在别的距离上,只加到刚好满足更低价格的加油站的距离就...

程序人生 1028

YOLOv11涨点改进| CVPR 2026 |独家创新首发、特征融合改进篇| 引入FAAFusion傅里叶角对准融合模块,促进高低频特征融合,增强模型在小目标、密集目标检测和旋转目标检测任务高效涨点

🔥本文提出FAAFusion傅里叶角对准融合模块,用于改进YOLOv11网络模型。该模块通过在特征金字塔融合阶段对齐高低层特征的方向信息,缓解传统FPN直接融合带来的方向冲突问题。FAAFusion利用傅里叶旋转等变性原理,在频域估计主方向并进行特征对齐,显著提升了多尺度特征表达的一致性与有效性。实验表明,该方法在DOTA等遥感数据集上取得了新的最先进水平,特别适用于旋转目标检测任务。文章详细介绍了模块原理、结构优势,并提供了三种不同的YOLOv11改进配置方案和完整的核心代码实现。

Ai缝合怪、助力小伙伴高效发论文 153

PTA甲级1033 To Fill or Not to Fill (25分)

首先,先贴柳神的博客 https://www.liuchuo.net/ 这是地址 想要刷好PTA,强烈推荐柳神的博客,和算法笔记 文章目录题目原文Input Specification:Output Specification:Sample Input 1:Sample Output 1:Sample Input 2:Sample Output 2:题目大意**分析:贪心算法。***贪心思想:*代...

Huangpengyu123的博客 376

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

PAT 1033. To Fill or Not to Fill (25)

1033. To Fill or Not to Fill (25) 时间限制 10 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 ZHANG, Guochuan With highways available, drivi

凌风 2316

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

PAT甲级 1033 To Fill or Not to Fill(25) (贪心)

PAT甲级 1033 To Fill or Not to Fill(25) (贪心)

NHS6671的博客 320

A1033 To Fill or Not to Fill (25 分)

1033 To Fill or Not to Fill (25 分) 题目分析        我跟这道题交手已经不下4次了,终于把它给AC了。这是一道贪心的问题,贪心的策略也比较好想,那就是保证油的单价一定是最便宜的。但是这其中有一些细节,如果不仔细很容易出错。 解题思路        我们在每个站点考虑要加的油量,参...

LinxRds的博客 255

PAT 甲级 1033 To Fill or Not to Fill (25分) 贪心

PAT 甲级 1033 To Fill or Not to Fill (25分) 贪心

星辰不问 195

1033 To Fill or Not to Fill (25 分)

With highways available, driving a car from Hangzhou to any other city is easy. But since the tankcapacity(油罐容量) of a car is limited, we have to find gas stations on the way from time to time. Differ...

韩江雪de 小屋 636

1033 To Fill or Not to Fill (25分)

1033To Fill or Not to Fill(25分) With highways available, driving a car from Hangzhou to any other city is easy. But since the tank capacity of a car is limited, we have to find gas stations on the ...

pan_xi_yi的博客 243
上一篇: 1032. Sharing (25)
下一篇: 1034. Head of a Gang (30)
AI记忆
AI记忆 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域 领域专家: 算法与数据结构技术领域 领域专家: 算法与数据结构技术领域
博客等级 码龄19年 6685粉丝 429原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI记忆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值