PATA1033_贪心(难度:⭐️⭐️⭐️⭐️)

DDR的Controller、Channel、Chip、Rank、Bank、Row、Column、Sided、Dimm DDR的Controller、Channel、Chip、Bank、Rank、Row、Column、Sided、Dimm 阅读详情

这个题我觉得很难,因为好多东西刚看题目想不到,只有慢慢写出来才能发现一些隐藏的东西。

主要的思路就是:如果当前站点是最大距离(Cmax * Davg)内最便宜的就加满,如果不是就只加到下一个最便宜的站点内。

有一个测试点第一个加油站起点并不是0,记得判断第一个加油站的起点。


#include <bits/stdc++.h>
using namespace std;
struct node {
    double dis, p;
};
bool cmp (node a, node b) {
    return a.dis < b.dis;
}
vector<node> v;
int main() {
    double Cmax, D, Davg, Dmax, oil = 0, dis, p, ans = 0.0, rem = 0.0;
    int n, f1= 0;
    cin >> Cmax >> D >> Davg >> n;
    Dmax = Cmax * Davg;
    for (int i = 0; i < n; i++) {
        scanf ("%lf %lf", &p, &dis);
        v.push_back(node{dis, p});
    }
    v.push_back(node{D, 0.0});
    sort(v.begin(), v.end(), cmp);
    if (v[0].dis != 0) {
        printf ("The maximum travel distance = 0.00");
        return 0;
    }
    for (int i = 0; i < n; ) {
        int flag = 0, k = i + 1, pos;   //当前节点最低则1
        double minP = v[i + 1].p, need;
        while (v[k].dis - v[i].dis <= Dmax && k <= n) {
            if (v[k].p <= minP) {
                minP = v[k].p;
                pos = k;
                if (minP < v[i].p) {
                    flag = 1;
                    break;
                }
            }
            k++;
        }
        if (v[k].dis - v[i].dis > Dmax && k == n) {
            printf ("The maximum travel distance = %.2lf", v[i].dis + Dmax);
            f1 = 1;
            break;
        }
        if (flag != 1) {
            ans += (Cmax - rem) * v[i].p;
            rem = Cmax - (v[pos].dis - v[i].dis) / Davg;
        }
        else {
            oil = (v[k].dis - v[i].dis) / Davg - rem;
            rem = 0;
            ans += oil * v[i].p;
        }
        i = pos;
    }
    if (f1 == 0) printf ("%.2lf", ans);
}

BPMN2.0规范及流程引擎选型方案 本文主要简明扼要的介绍了BPMN2.0规范的内容,可让读者快速度的了解BPMN2.0所涵盖的主要内容和图形样式。也较为详细的阐述了如何绘制标准的流程图,以及在软件层面中如何实现业务流程功能,和技术选型。 阅读详情

相关推荐

Cadence Allegro 17.4学习记录开始02-原理图Capture CIS 17.4

Allegro的第一方网表与第三方网表有以下几个区别点;Ø 与Allegro实现交互式操作的是第一方网表,第三方网表时不可以实现交互式操作;Ø 第三方网表不能将器件的Value属性导入到PCB中,输出时以封装属性来代替Value属性,第一方网表是可以的;Ø 网表导入到PCB中时,第三方的网表需要指定事先指定好PCB封装库文件,并产生Device文件,才可以将网表导入到PCB中,第一方网表则可以直接导入。

qq_31444421的博客 1万+

算法09——patA1033 加油站问题(贪心)

问题描述:   已知起点与终点的距离为D,油箱的最大油量为Cmax,单位汽油能够支持前进Davg,给定N个加油站的单位油价和离起点的距离(所有加油站都在一条线上),汽车初始时刻处于起点位置,油箱为空,且可以在任意加油站购买任意量的汽油(前提是不超过油箱容量),求从起点到终点的最小花费。如果无法到达终点,则输出能够行驶的最远距离。 输入格式:   第一行输入四个正整数,分别为Cmax(<=100)、D(<=30000)、Davg(<=20)、N(<=500),紧接着N行分别给出N个加油

weixin_46025531的博客 1218

ESP32-CAM与TFT屏幕实时图像传输:Arduino环境下的OV2640驱动实践

本文详细介绍了在Arduino环境下实现ESP32-CAM与TFT屏幕实时图像传输的完整实践方案。重点解析了OV2640摄像头的驱动配置、硬件引脚连接、TFT屏幕初始化及图像显示优化技巧,帮助开发者快速构建稳定的实时图像显示系统,适用于物联网监控、门禁系统等场景。

cuda7parallel的博客 115

PAT A1033

题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805458722734080 在加满油的距离下找有没有比当前便宜的,有,就加去第一个比它便宜的地方的油,如果没有,就加满油去剩下的最便宜的站。 注意用一个变量存当前油量。 把终点看成油不要钱的站。 #include <cstdio> #inc...

我好像在哪儿见过你 305

IC618新手避坑指南:从零在Linux上配置Cadence Virtuoso环境(含cds.lib文件详解)

本文详细介绍了在Linux系统上配置Cadence Virtuoso IC618环境的完整指南,特别针对新手常见问题提供解决方案。重点解析了cds.lib文件的关键配置,包括库路径定义和工艺库管理,并分享了高效工作流设置和典型问题排查技巧,帮助工程师快速搭建稳定的EDA设计环境。

weixin_26805597的博客 555

为何LPDDR4支持on-die ECC,但是DDR4却不支持呢?

DRAM的ECC,目前的编码方式都是128bit data,产生8bit parity或者ECC code. 而且必须要128bit才行。这8bit的ECC code是要被写入到DRAM内存里面的,从而read的时候,可以读取这8bit ECC code来判定read data是否有错,如果是SBF,就可以纠错了,如果是double bit,大部分时候是可以detect到错误,即所谓的SEC(Single Error Correct) + DED(Double Error Detect).

一个DRAM从业者的告白 1556

PAT a1033题解

#include #include using namespace std; const int maxn = 510; const int INF = 1000000000; struct station{ double price, dis; }st[maxn]; bool cmp(station a, station b){ return a.dis < b.dis; } in

Tang's学习笔记 492

c++通过自然语言处理技术分析语音信号音高

其中,缓冲区大小为2048,最小基频为80Hz,最大基频为1000Hz。通常情况下,音高在85Hz到255Hz之间,因此可以根据实际情况修改最小和最大基频值。C++中可以使用数字信号处理库或语音处理库,比如MATLAB、Praat、YIN算法等等来进行音高分析。对于语音信号的音高分析,可以使用基频提取技术。基频是指一个声音周期的重复率,也就是一个声音波形中最长的周期。通常情况下,人的声音基频范围是85Hz到255Hz。这段代码使用了YIN算法来计算语音信号的基频,得出的结果即为音高。

SYC20110120的博客 1728

PAT甲级1033(加还是不加)

1033 To Fill or Not to Fill (25 point(s))   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 station...

云胡的博客 344

Boost电路双闭环控制MATLAB仿真

通过电流内环控制,我们可以改变目标平均电流基准值的大小来闭环改变占空比,再改变输出电压与电路电流,直到电路电流达到基准电流才达到稳态。但是我们的基准电流依旧是外部提供的,下边的电压外环控制就是电路自己计算基准电流。

Fourglsl的博客 5846

银河麒麟V10系统grub崩溃急救指南:从光盘救援到完整恢复(附常见错误排查)

本文详细介绍了银河麒麟V10系统grub崩溃的急救方法,从使用安装光盘进入救援环境到完整恢复系统的全流程。针对不同损坏程度(轻度、中度、严重)提供了分级恢复策略,包括grub2-install和grub2-mkconfig等关键命令的使用,并附有常见错误排查表,帮助用户快速解决引导问题。

weixin_30955617的博客 483

PAT第一轮刷题总结

2018年1月2日~2018年1月29日 前排感谢晴神大大,以及众多大佬的帮助,让我这个编程小白走上了coding的不归之路。。 本来有望早一天登顶,还是由于自己的小惰性迟到了一天,也算提前完成自己一月份的计划。最后一天解决了之前遗留4道题的小bug,虽然效率及其低下,还是最终完成了,不然强迫症会犯的~~ 由于之前在准备考研,并没系统的刷过题,零零星星刷的题目不超过十道,自己的编程能

Phoenix 1万+

【人脸识别】基于 Gabor+SVM和PCA+SVM实现人脸识别matlab源码含 GUI

1 简介 随着经济的快速发展,互联网的普及,信息安全逐渐被人们所重视。人脸识别技术作为保护信息安全的重要手段之一,也逐渐被研究学者所重视。人脸识别作为计算机视觉技术和生物特征识别技术的一个重要分支,模式识别与人工智能的一个重要领域,其主要任务是对静态图像或动态视频进行识别。如何快速的正确的对人脸进行识别是目前人脸识别课题的一个难题。人脸识别算法的选取直接关系到人脸识别的识别率。 本文首先介绍了国内外人脸识别的发展现状,并对人脸图像预处理方法进行了详细阐述。图像预处理的方法有很多,主要包括:灰度变换、图像锐

qq_59747472的博客 1136

patA1033 to fill or not fill

#include &lt;iostream&gt;#include &lt;cstdio&gt;#include &lt;algorithm&gt;using namespace std;//在汽车的行驶过程中,如果有更便宜的,选择便宜的,加一定量。去下一个更便宜的。 //有没有必要计算俩个加油点的距离?//又没有必要对距离原点的距离进行排序? struct postion{ double per...

QAQ的小耗子的博客 257

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

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

PATA 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 ...

热心市民小黎的博客 2340

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

PATA 1033 To Fill or Not to Fill

1033 To Fill or Not to Fill 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 ...

沧夜的成长日记 643

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

PATA1033 To Fill or Not to Fill

PATA 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 o...

这个年纪的_我 227

patA1067 Sort with Swap(0,*)

#include &lt;iostream&gt;#include &lt;cstdio&gt; #include &lt;algorithm&gt;using namespace std;const int maxn=100001;int num[maxn];       //目标数组;int op[maxn];        //操作的数组; bool place[maxn];   //对应的...

QAQ的小耗子的博客 232

PAT甲级1033

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

湛蓝的天空 1352

PAT A1033 To Fill or Not To Fill 看了书才知道自己的思维不严谨,即使算法大概对,还少了很多

//ac全部正确!果然是晴神宝典 //有时候程序并没有问题,但是编译器就是会报错时候返回为1,说什么无法打开输出文件,这时把所有运行的本程序关闭,再输出文件刷新一下 //我的错点:选出最近的油价低于当前油价的加油站 //算上最后一个加油站,就是从[0,n],所以while(now<n)//每次循环将选出下一个需要到达的加油站. //if(nowTank<need){//尤其注意,这里也是要

小青青的技术之家 2313

1033 To Fill or Not to Fill (25 分)测试点0、1

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 di

weixin_45050148的博客 404

PATA1134_hash(遇到开10000 * 10000数组的问题)

这个题如果开vis[10000][10000]第三、四测试点过不去。利用hash,开一个map<int, bool>。hash函数:a * 10000 + b。思考:不可能每个节点之间都有关系,所以再1000 * 1000以上数量的节点的图,要占用(10^8/ 2^20)~= 95.3MB内存,用邻接矩阵的话太大,太浪费了。 #include <bits/stdc++.h> using namespace std; unordered_map<int, vector&lt.

YYHCODE的博客 347

PATA1069_测试点安排!(难度:⭐️⭐️)

测试点找了半小时全给你找齐了,拿了留个评论????。 测试点: 测试点2:1000。每次运算都要补0因为1000 - 0001 = 0999,如果不补0就会出错(我就是卡在这)。 其他测试点:有可能是小于1000的数, 1。 测试点5:输入的就是6174。 #include <bits/stdc++.h> using namespace std; bool cmp (char a, char b) { return a > b; } int main() { int

YYHCODE的博客 336

PATA1108_测试点3巨坑(难度:⭐️⭐️⭐️)

测试点3应该是类似于大于1000然后还有个小数点的,例如:1001. 按照题目要求.42或者是42.都是合法的 我原来判断小数点都默认把带有小数点的树都在合法范围内,没有判断是不是在[-1000,1000]内 测试点三就一直过不去????; #include <bits/stdc++.h> using namespace std; bool judge (string s) { int cntClum = 0; for (int i = 0; i < s.size

YYHCODE的博客 284

PATA1060_测试点3_模拟(难度:⭐️⭐️⭐️)

这个题看似不难,但是细节处理还是有点烦的。 注意几个点: 1、首先判断小数点的位置,然后看去掉小数点后,字符串长度是否大于等于n。这里是要分别处理的,如果小于n的话要补0. 2、第一次交测试点3没过 想了一下测试用例:20.0340.03 自己的程序并没有考虑到数字是0.XXX的,所以在方法前面又加了判断是否是小于1的小数。最后就A了。 #include <bits/stdc++.h> using namespace std; int n; string tran(stri..

YYHCODE的博客 263

PATA1137_一道考基础的题

这道题考点应该是map<string, 结构体>,其他的都是基础。 si hse wu #include<bits/stdc++.h> using namespace std; struct stu { int Gp, Gm = -1, Gf = -1, G; string id; }; unordered_map<string, stu> mp; vector<stu> v; bool cmp (stu a, stu b) {

YYHCODE的博客 256
上一篇: PATA1031_模拟(难度:⭐️⭐️)
下一篇: PATA1030_图的遍历(难度:⭐️⭐️)
YYHCODE
博客等级 码龄10年 0粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值