首页 / 拼多多集团-PDD笔试
#

拼多多集团-PDD笔试

#
3581次浏览 52人互动
此刻你想和大家分享什么
热门 最新
今天 17:01
门头沟学院 Java
拼多多笔试
程序员大奋:不好意思,打扰大家🙏我是一个拼多多骑手,小电驴的最大电量为C😭😭😭需要从x=0处走到x=L处,途中有n个充电站,🙏🙏每个充电站的距离和电价分别为di和pi,初始电量是满的😭😭😭请告诉我到达终点最少要花多少钱😭😭😭求求大家把这些钱转给我
点赞 评论 收藏
分享
点赞 评论 收藏
分享
今天 18:04
已编辑
西安交通大学 Java
我是菜鸡。4道题一道都没有全对,0.95  0.4  0.975  0.95  与大厂无缘了不愧是拼都督,笔试都能感觉到卷了--------第二题的屎山代码import java.util.*;import java.io.*;public class Main{public static void main(String[] args) throws InterruptedException {Scanner sc=new Scanner(new BufferedInputStream(System.in));PrintWriter out=new PrintWriter(new BufferedOutputStream(System.out));int L=sc.nextInt(),C=sc.nextInt(),n=sc.nextInt();int[]ds=new int[n+1];int[]ps=new int[n+1];for(int i=0;i<n;i++){ds[i]=sc.nextInt();ps[i]=sc.nextInt();}ds[n]=L;ArrayDeque<Integer>w=new ArrayDeque<>();int next=C;int start=-1;int startC=C;long cost=0;boolean stop=false;for(int i=0;i<=n;i++){if(next>=ds[i]){while(!w.isEmpty()&&ps[w.getLast()]>=ps[i])w.removeLast();w.addLast(i);}else{int need=ds[i]-next;while(!w.isEmpty()&&need>0){int idx=w.getFirst();int space=(C-startC)+(ds[idx]-(start==-1?0:ds[start]));// 可以加的油=邮箱中剩余的空间=起点时邮箱不满的空间+从起点走到这里花的油if(space<=need){need-=space;next+=space;cost+=(long)space*ps[idx];startC=C;start=idx;w.removeFirst();}else{start=idx;startC=C-space+need;next+=need;cost+=(long)need*ps[idx];need=0;}}if(need>0){stop=true;break;}i--; // 这时候反悔加了油,但是当前的i处的加油站还没有加进来,再来一轮}}if(stop)out.println(-1);else out.println(cost);out.flush();out.close();sc.close();}}只记得样例1了20 10 34 59 215 6输出为24
点赞 评论 收藏
分享
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客网在线编程
牛客网题解
牛客企业服务