【JAVA】滴滴-2021校招在线笔试-DE数据开发试卷-0913 机器学习13 -- 无监督学习之自监督 2020年全国数学建模大赛 B题部分代码和模型的建立 jumpserver安装(centos) Redis 知识点总结 通过RabitMQ实现分布式事务 高焕堂《嵌入式UML设计》读书笔记_第一章 2020年中国5G在物联网行业:中国通信运营商5G投资达1.23万亿元(可下载) 面试题精选:数据伪造 繁忙的都市(并查集、Kruskal) BFS 力扣 200.岛屿数量 深度操作系统Deepin V20正式版 2020-09-13 【OS】Bankers Algorithm 用于调用的参数太少/写入位置时发生冲突/检测到无效的异常处理程序例程 后渗透之各种维持权限的后门原理即利用 MIPS Branch Target Buffer动态分支预测(BTB) Oracle实战优化:INSERT ALL关键字的应用 Linux中MySQL数据库的使用②-----数据的基本操作 理论+实验——MySQL备份与恢复 MySQL常用数据库函数 MySQL 备份与恢复(完全备份恢复--增量备份恢复+案例演示) MySQL之基础总结部分 Oracle实战优化:递归+分析函数+OLAP函数的应用 Linux中MySQL数据库的使用③-----编码和基本数据类型 理论+实验:MySQL备份与恢复(完整备份、增量备份) “数”聚永川 “智”引未来——永川区大数据智能化产业发展强劲 从一款防疫App感受新加坡大数据智能化气息 “数”聚永川“智”引未来——永川区大数据智能化产业发展强劲 从连接量变到数据质变 物联网将二次爆发 重磅发布!猎芯半导体首创全球最小支持5G物联网的多模多频射频PA芯片 从精准授信到助企惠民,江苏银行物联网金融派上大用场 Python Selenium UI自动化_WebDriver元素_8大定位方式+总结(持续更新完善) Python中的继承、抽象基类和接口 Datawhale学习笔记【阿里云天池 金融风控-贷款违约预测】task1 赛题理解 Pytorch - torchvision计算机视觉工具库 linux 重点笔记 Ubuntu18.04安装ROS Melodic(一路到站型) 小甲鱼笔记:数据结构——线性表(一)线性表的顺序存储结构,线性表顺序存储结构的增,删,插入元素操作 实战比特币脚本编程(1) JAVA WEB DAY 01_Tomcat & Servlet Java基础算法之堆排序(Heap Sort) synchronized批量重偏向与批量撤销 终于等到了!阿里P8历时九个月整理,Java面试宝典,核心知识点笔记在此 “数字心脏”动态解析消费密码,国家级消费市场大数据联合实验室在上海先行先试 全世界运行着大约230亿台物联网设备,安全问题如何解? 物联网产业园&thinkplus解决方案中心国学讲座如期而至 都是程序员,凭什么他能站在鄙视链的顶端? 猛男必看!去小红书做程序员是种什么体验 drozer提示[Errno 2] No such file or directory
您的位置:首页 >前端 >

【JAVA】滴滴-2021校招在线笔试-DE数据开发试卷-0913

目录

前言一、D星群岛(全A,A了0.82的人考虑一下:四个岛,现在有两条桥1-2 3-4)代码:二、毕业旅行(全A)代码:

前言

兄弟们都会有offer的,不要慌,奥力给 在这里插入图片描述 在这里插入图片描述

一、D星群岛(全A,A了0.82的人考虑一下:四个岛,现在有两条桥1-2 3-4)

时间限制: 3000MS 内存限制: 589824KB

题目描述: D星群岛由n个小岛组成。为了加强小岛居民之间的交流,头目决定启动一个造桥工程,将全部n个岛连接到一起。

由于受到金融危机的影响,头目要求造桥的总成本要最少,并且还规定每一座桥的成本都不能超过k万D星币。

需要注意的是,由于受到地理环境和气候影响,有些小岛之间没有办法直接造桥。

现在给你m条小岛之间的造桥成本数据以及k的值,请问这个宏伟的造桥工程是否能够顺利完成?

注意:可能边不够,也可能费用超支。

输入描述 多组输入,第1行输入一个正整数T表示输入数据的组数。 对于每一组输入数据:输入m+1行。 第1行包含三个正整数,分别表示n、m和k,n≤100,m≤1000,k≤10000,三个数字之间用空格隔开。 接下来m行表示m条小岛之间的造桥成本数据,每一行包含三个正整数,分别表示两个小岛的编号(从1开始)和这两个小岛之间的造桥成本(单位:万)。

输出描述 针对每一组输入数据,如果能够完成造桥工程输出“Yes”,否则输出“No”。

样例输入 2 3 3 400 1 2 200 1 3 300 2 3 500 3 3 400 1 2 500 1 3 600 2 3 700

样例输出 Yes No

代码:

package didi;import java.util.ArrayList;import java.util.HashSet;import java.util.Scanner;/** * Created by IntelliJ IDEA. * * @Author:* @Email:* @Date: 2020/9/13 * @Time: 19:43 * @Version: 1.0 * @Description: Description */public class First3 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int T = scanner.nextInt();for (int l = 0; l < T; l++) {int n = scanner.nextInt();int m = scanner.nextInt();int k = scanner.nextInt();ArrayList<Integer[]> bridges = new ArrayList<>();for (int i = 0; i < m; i++) {Integer[] bridge = new Integer[2];for (int j = 0; j < bridge.length; j++) {bridge[j] = scanner.nextInt();}if (scanner.nextInt() <= k) {bridges.add(bridge);}}/*if (bridges.size() < n - 1) {//三个岛最少也得有两座桥System.out.println("No");} else {System.out.println("Yes"); //透风小技巧 只写这部分,不写下面的能A36%}*/HashSet<Integer> connections = new HashSet<Integer>();if (!bridges.isEmpty()) {connections.add(bridges.get(bridges.size() - 1)[0]);connections.add(bridges.get(bridges.size() - 1)[1]);bridges.remove(bridges.size() - 1);}while (true) {boolean end = true;for (int i = bridges.size() - 1; i > -1; i--) {if (connections.contains(bridges.get(i)[0])|| connections.contains(bridges.get(i)[1])) {connections.add(bridges.get(i)[0]);connections.add(bridges.get(i)[1]);bridges.remove(i);end = false;}}if (end) {break;}}if (connections.size() == n) {System.out.println("Yes");} else {System.out.println("No");}}scanner.close();}}

二、毕业旅行(全A)

时间限制: 3000MS 内存限制: 589824KB

题目描述: 小滴正在筹划他的毕业旅行。他打算去找他的外国网友们,首先第一站是法国巴黎,但是去巴黎的路线有很多,交通工具也有很多可供选择。

现在有一个结点数为n,边的条数为m的无向图表示小滴到巴黎的所有路线。其中小滴的家为结点s,巴黎为结点e,小滴出发时间为start,请问小滴最早什么时候能到达巴黎?

输入描述 单组输入,数字间有空格隔开。

第一行两个整数:结点数n,边数m(n<=1000,m<=10000)。

第二行到第m+1行每行各有三个整数:结点u,结点v,需要的时间time(1<=u,v<=n,time<50,time以小时为单位)。

最后一行为家的位置:s,巴黎的位置:e,出发时间start(1<=s,e<=n,出发时间格式为month.day/hour,小时为24小时制,出发年份默认为2020年,且一定会在2020年到达,数据保证有解。)

输出描述 最早能到达巴黎的时间e time(格式与出发时间格式相同)。

样例输入 4 4 1 2 5 1 3 6 2 4 8 3 4 6 1 4 7.9/8

样例输出 7.9/20

提示 输入样例2 4 4 1 2 25 1 3 18 2 4 28 3 4 22 1 4 7.9/8

输出样例2 7.11/0

代码:

package didi;import java.util.*;/** * Created by IntelliJ IDEA. * * @Author: 张志浩 Zhang Zhihao * @Email: 3382885270@qq.com * @Date: 2020/9/13 * @Time: 20:13 * @Version: 1.0 * @Description: Description */public class Second2 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {int n = sc.nextInt();int m = sc.nextInt();List<int[]>[] ways = new List[n + 1];for (int i = 0; i < n + 1; i++) {ways[i] = new ArrayList<>();}for (int i = 0; i < m; i++) {int l = sc.nextInt();int r = sc.nextInt();int cost = sc.nextInt();int[] lr = {r, cost};ways[l].add(lr);int[] rl = {l, cost};ways[r].add(rl);}int start = sc.nextInt();int tar = sc.nextInt();String time = sc.next();int[] arrived = new int[n + 1];Arrays.fill(arrived, Integer.MAX_VALUE);Deque<int[]> list = new LinkedList<>();list.add(new int[]{start, 0});while (!list.isEmpty()) {int[] cur = list.poll();int pos = cur[0];int cost = cur[1];if (cost < arrived[pos]) {arrived[pos] = cost;for (int[] arr : ways[pos]) {if (arr[1] + cost < arrived[arr[0]]) {list.add(new int[]{arr[0], arr[1] + cost});}}}}int res = arrived[tar];String out = help(res, time);System.out.println(out);}}static int[] months = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};public static String help(int res, String time) {String[] temp = time.split("\\.");int month = Integer.parseInt(temp[0]);temp = temp[1].split("/");int day = Integer.parseInt(temp[0]);int hour = Integer.parseInt(temp[1]);hour += res;if (hour >= 24) {day += hour / 24;hour = hour % 24;}while (day > months[month]) {day -= months[month];month++;}StringBuilder arrive = new StringBuilder();arrive.append(month).append(".").append(day).append("/").append(hour);return arrive.toString();}}
爱做梦的鱼CSDN认证博客专家Java大数据开发CSDN签约作者微信公众号【程序猿干货铺】,里面有各种学习资料和各种面试、笔试经验。东北大学大数据实验班大三学生,秋招求职中。我好菜啊,菜得我难过!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。