美团8月15日笔试

第四题一直45%,有没有老哥帮忙看下哪里有问题,感觉就是裸的floyd啊
public class Solution {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int m = in.nextInt();
        int x = in.nextInt();
        int y = in.nextInt();
        int[] waitTime = new int[n + 1];
        int[][] dis1 = new int[n + 1][n + 1];
        int[][] dis2 = new int[n + 1][n + 1];

        for (int i = 0; i <= n; i++) {
            Arrays.fill(dis1[i], -1);
            Arrays.fill(dis2[i], -1);
        }

        for (int i = 0; i < m; i++) {
            int u = in.nextInt();
            int v = in.nextInt();
            int w1 = in.nextInt();
            int w2 = in.nextInt();
            dis2[u][v] = dis2[v][u] = w1;
            dis1[u][v] = dis1[v][u] = w2;
        }

        for (int i = 1; i <= n; i++)
            waitTime[i] = in.nextInt();

        waitTime[y] = 0;

        for (int i = 1; i <= n; i++)
            dis1[i][i] = dis2[i][i] = 0;

        for (int k = 1; k <= n; k++)
            for (int i = 1; i <= n; i++)
                for (int j = 1; j <= n; j++) {
                    if (dis1[i][k] != -1 && dis1[k][j] != -1 && (dis1[i][k] + dis1[k][j] < dis1[i][j] || dis1[i][j] == -1))
                        dis1[i][j] = dis1[i][k] + dis1[k][j];
                    if (dis2[i][k] != -1 && dis2[k][j] != -1 && (dis2[i][k] + dis2[k][j] < dis2[i][j] || dis2[i][j] == -1))
                        dis2[i][j] = dis2[i][k] + dis2[k][j];
                }
        int ans = Integer.MAX_VALUE;
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= n; j++)
                ans = Math.min(ans, Math.max(dis1[x][i], waitTime[i]) + dis2[i][j] + dis1[j][y]);
        System.out.println(ans);
    }
}


#美团笔试##美团##笔试题目#
全部评论
有一个特殊情况是直接走到终点,这样不用看waiting time。不过我考虑了这个情况也没有ac
点赞 回复 分享
发布于 2021-08-15 12:25

相关推荐

牛客316659795号:不是,证明hr初筛已经过了,要投给部门筛一遍
点赞 评论 收藏
分享
JamesGosling1:同一个公司的实习为什么写三次,就算是不同的小组的话,直接写一段要好点吧
点赞 评论 收藏
分享
已oc&nbsp;云智断更了好几天,也有一些话想说,继续更新一篇云智timeline&nbsp;4.18&nbsp;一面&nbsp;半个小时后约二面&nbsp;4.21二面&nbsp;当晚&nbsp;约hr面&nbsp;4.23hr面&nbsp;4.30&nbsp;发offer之前美团的二面挂了,进入人才库,后面又被捞起来面试,4.30号&nbsp;美团又一面,现在还没出一面结果感觉也不报什么希望,就算一面过了,还有二面,我经不起深入拷打,唉,真的,好难五一躺平了五天,吃吃玩玩睡睡~还要担心毕业,科研更是难,唉暑期可能就到此为止了,后面没有时间在这个上面了,要抓紧时间做科研,为了后面能出去实习。大厂,秋招再见!!!有一些感慨:4.1是我的第一次面试,美团,面试的时候紧张到浑身发...
daisy9542:我今晚也是美团一面,已经第六次了。我也面了其他的,没拿到 offer。但我想开了,要按照自己的节奏来,找暑期转正然后秋招大杀四方并不是唯一的出路,其实还有很多选择的,有 0 实习最后秋招拿 offer 了,也有不选择互联网去国企的外企的,考编的,创业的。现在的失败不代表以后的路都是黑暗的,只不过可能运气还没降临到头上。所以现在要做的,就是放平心态,提升自己,通过面试了解到自己的优点和不足,争取下次机会来了能好好抓住
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务