果汁摊位数目

 1 约翰错过了他的公交车,他一路从家走到学校。他的学校和家之间的距离是D个单位。
 2 他开始旅程时有K个单位的初始能量。他每走1个单位的距离,能量也减少1个单位。
 3 在他去学校的路上,有N个果汁摊。每个摊位都有特定量的果汁(以升为单位)。
 4 他每消费一升果汁,能量增加1个单位。请注意,为了让他持续走路,他的能量不应为0
 5 写一个算法,帮助约翰找出为了成功到达学校他应该停下补充能量所需要的最小果汁摊位的数目。如果
 6 他不能到达学校,输出将为-1;
 7 输入:该函数/方法的输入包括五个参数-
 8 numOfStalls表示果汁摊位数目的整数N
 9 distOfStalls 表示约翰的家与摊位距离的整数列表;
10 juiceQuantity表示每个果汁摊位可获得的果汁量的整数列表
11 distance表示约翰的家和学校之间的距离的整数D
12 initialEnergy表示约翰的初始能量的整数K
13 输出:
14 返回一个整数,表示约翰为了成功到达学校而应该停下的小果汁摊位数目
15
16 int findMinNumberOfJuiceStalls(int numOfStalls, int* distOfStalls,
17     int* juiceQuantity, int distance,
18     int initialEnergy)
19 {
20     priority_queue<int> heap;
21     int curenergy = initialEnergy;
22     int res = 0;
23     for (int i = 0; i < numOfStalls; i++)
24     {
25         while (curenergy < distOfStalls[i])
26         {
27             if (heap.empty())
28                 return -1;
29             curenergy += heap.top();
30             res++;
31             heap.pop();
32         }
33         heap.push(juiceQuantity[i]);
34     }
35     while (curenergy < distance)
36     {
37         if (heap.empty())
38             return -1;
39         curenergy += heap.top();
40         res++;
41         heap.pop();
42     }
43     return res;
44 }
时间: 2024-07-30 10:14:27

果汁摊位数目的相关文章

NYoj-27-水池数目-DFS-BFS

水池数目 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地图上仅标识了此处是否是水池,现在,你的任务来了,请用计算机算出该地图中共有几个水池. 输入 第一行输入一个整数N,表示共有N组测试数据 每一组数据都是先输入该地图的行数m(0<m<100)与列数n(0<n<100),然后,输入接下来的m行每行输入n个数,表示此处有水还是没水(1表示此处是水

求逆序数数目(树状数组+离散化)

404在玩忍者印记(Mark of the Ninja)操纵忍者时遇到这样一个场景,两栋大楼之间有许多绳索,从侧面看,就像这个样子: 我们的忍者非常有好奇心,他可以观察到每个绳索的端点在两栋楼的高度,想知道这些绳索有多少个交点(图中黑色的点).他观察到不会建筑上不会有一点上有两个绳索,并且没有三条绳索共点. 输入描述 第一行:整数T,代表有T组数据. (1 <= T <= 100) 下一行:整数N,代表有N条绳索. (1 <= N <= 100000) 接下来Na行给出两个整数A_

设置每个datanode里面的map数目,提高运行效率

首先可以通过hdfs.site.xml下面的dfs.block.size来设置数据的块大小,这个参数会决定map的总数目(4194304=4m) 然后通过mapred.site.xml下面的mapreduce.map.memory.mb参数来设置每个map分到的内存数目. 通过yarn.sidt.xml下面的yarn.scheduler.minimum-allocation-mb来设置每个节点分配一个task所占用的内存数目,也就是说在一个8g内存的节点上面如果这个值设定的大于4个g,那么在同一

多校2016 1004 HDU5784 统计锐角三角形数目

http://acm.hdu.edu.cn/showproblem.php?pid=5784 题意:n个点,找多少个锐角三角形数目 思路:极角排序+two pointers 当前选择的点集要倍增一倍,点集过大时,极角排序后,后面的点有可能和前面的点形成钝角 ans=总的三角形数目 - 三点共线的情况-直角和钝角 1 // #pragma comment(linker, "/STACK:102c000000,102c000000") 2 #include <iostream>

【蓝桥杯】历届试题 买不到的数目

  历届试题 买不到的数目   时间限制:1.0s   内存限制:256.0MB 问题描述 小明开了一家糖果店.他别出心裁:把水果糖包成4颗一包和7颗一包的两种.糖果不能拆包卖. 小朋友来买糖的时候,他就用这两种包装来组合.当然有些糖果数目是无法组合出来的,比如要买 10 颗糖. 你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17.大于17的任何数字都可以用4和7组合出来. 本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字. 输入格式 两个正整数,表示每种包装中糖的颗

POJ1523(求连用分量数目,tarjan算法原理理解)

SPF Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7406   Accepted: 3363 Description Consider the two networks shown below. Assuming that data moves around these networks only between directly connected nodes on a peer-to-peer basis, a

水池数目(nyoj27)(BFS)

水池数目 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地图上仅标识了此处是否是水池,现在,你的任务来了,请用计算机算出该地图中共有几个水池. 输入 第一行输入一个整数N,表示共有N组测试数据 每一组数据都是先输入该地图的行数m(0<m<100)与列数n(0<n<100),然后,输入接下来的m行每行输入n个数,表示此处有水还是没水(1表示此处是水

nyoj--水池数目

描述南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地图上仅标识了此处是否是水池,现在,你的任务来了,请用计算机算出该地图中共有几个水池. 输入 第一行输入一个整数N,表示共有N组测试数据每一组数据都是先输入该地图的行数m(0<m<100)与列数n(0<n<100),然后,输入接下来的m行每行输入n个数,表示此处有水还是没水(1表示此处是水池,0表示此处是地面) 输出 输出该地图中水池的个数.要注意,每个水池的旁边(上下左右

数对数目(原题转自微信号待字闺中)

题目 给定两个数组X和Y,元素都是正数.请找出满足如下条件的数对的数目: x^y > y^x,即x的y次方>y的x次方 x来自X数组,y来自Y数组 [思考5分钟~~~] 分析 假设数组X的长度为m,数组Y的长度为n,最直接的暴力法,时间复杂度为O(m*n),但这样的话,并不需要都是正数这个条件的.那么,我们该如何优化呢? x^y>y^x,对于x和y来讲,有什么规律呢?该如何发现呢?这里其实有规律的,大多数的条件下,当y>x的时候,x^y>y^x,但是有一些例外,1,2,3,4