题目要求

题目链接

分析

早期代码大概是这么写的,先是用了Date,结果连样例都过不去,就换了日期数组自己做,还是不对。

import java.util.*;public class Main {public static void main(String[] args) {Set<Long> time_set = new TreeSet<>();int[] month_list = {0, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335};Scanner scanner = new Scanner(System.in);int num = scanner.nextInt();time_set.add(0L);time_set.add(366L*24*3600);for (int i = 0; i < num; i++) {int temp = month_list[scanner.nextInt()]+scanner.nextInt();time_set.add((temp)*24L*3600);System.out.println(temp);
//            time_set.add(new Date(4000, scanner.nextInt()-1, scanner.nextInt()).getTime()/1000);}scanner.close();Iterator<Long> iterator = time_set.iterator();long prev = iterator.next(), max_time_slot = 0;while (iterator.hasNext()) {long temp = iterator.next();max_time_slot = Math.max(max_time_slot, temp-prev);prev = temp;}System.out.printf("%.0f", max_time_slot*1.0/366);}
}

后面发现问题主要是在两个日子相减的时候应该额外减一,而如果是在已经乘上时分秒之后减一其实是减了一秒,就会错。

所以应该把Set里的时间改成int,最后乘以时分秒。

特别强调:最后的运算一定不要直接整数运算或是截断取整,一定要使用浮点运算,四舍五入:System.out.printf("%.0f", max_time_slot243600/366.0);

提供两组测试数据:

测试数据3
in
0
out
86400

测试数据4
in
1
7 1
out
43200

AC代码(Java语言描述)

import java.util.*;public class Main {public static void main(String[] args) {Set<Integer> time_set = new TreeSet<>();int[] month_list = {0, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335};time_set.add(1);time_set.add(367);Scanner scanner = new Scanner(System.in);int num = scanner.nextInt();for (int i = 0; i < num; i++) {time_set.add(month_list[scanner.nextInt()]+scanner.nextInt());}scanner.close();if (num == 0) {System.out.println("86400");return;}Iterator<Integer> iterator = time_set.iterator();long prev = iterator.next(), max_time_slot = 0;while (iterator.hasNext()) {long temp = iterator.next();max_time_slot = Math.max(max_time_slot, temp-prev-1);prev = temp;}System.out.printf("%.0f", max_time_slot*24*3600/366.0);}
}

到天宫做客(洛谷P1178题题解,Java语言描述)相关推荐

  1. 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)

    题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...

  2. 队列模拟约瑟夫问题(洛谷P1996题题解,Java语言描述)

    题目要求 P1996题目链接 分析 以前就研究过"约瑟夫环"问题: <单循环链表求解约瑟夫环问题(Java语言描述)> <杀人游戏~约瑟夫环(洛谷P1145题题解 ...

  3. 枚举求解单词方阵(洛谷P1101题题解,Java语言描述)

    题目要求 P1101题目链接 分析 可以用DFS做,但我立下了个Flag,所以就用了朴素的枚举来做.... 结果,我的天哪,做了好几个小时-- 其实这种地图题,真的适合 DFS or BFS or D ...

  4. 快速幂||取余运算【模板】(洛谷P1226题题解,Java语言描述)

    题目要求 P1226题目链接 分析 标准的快速幂取模算法板子,之前这个算法我在这篇文章中讲过了:<快速幂算法详解&&快速幂取模算法详解>. 这里选择使用比较简单的API实现 ...

  5. 贪心策略摘果子(洛谷P1478题题解,Java语言描述)

    题目要求 P1478题目链接 分析 本题的低配版题目链接 → 题解 那个题就是纯水题没啥可写的,我除了贴代码无话可说,但这题吧,虽然不算难,但也可一说. 建议大家移步这里 → 精辟题解 这位爷写了本题 ...

  6. 麦森数(洛谷P1045题题解,Java语言描述)

    题目要求 题目链接 分析 这题挺经典的,快速幂取模算法,如果求出大数再取模就可能T掉. 之前有篇文章写了这个算法:<快速幂算法详解&&快速幂取模算法详解> 既然是Java, ...

  7. 求子集元素之和(洛谷P2415题题解,Java语言描述)

    题目要求 P2415题目链接 分析 这题我觉得--当个数学题做就好了嘛. 有一个数N的情况:result = 1 * N 有两个数N1.N2的情况:result = 2 * (N1+N2) 有三个数N ...

  8. N进制正反累加判回文数(洛谷P1015题题解,Java语言描述)

    题目要求 P1015题目链接 分析 开始的时候写了这么一个代码,应该是比较基础的,是十进制的. private static void low() {Scanner scanner = new Sca ...

  9. 试试把OJ题意抽象成物理模型(洛谷P1007题题解,Java语言描述)

    题目要求 P1007题目链接 分析 这题干出的,真有毒... 要是有这种指挥官,也是醉了... 言归正传,这题其实是可以贪心求解的,但我们还可以更加666... 事实上,题干上面那一大篇基本在扯,关键 ...

最新文章

  1. Java设计模式:工厂模式
  2. Zend SDK学习-1
  3. suse linux 文件只可读,SUSE LINUX下文件系统变只读的问题解决
  4. jooq 执行sql_使用jOOQ和Java 8的CompletableFuture进行异步SQL执行
  5. 小程序 自定义组件报错[“usingComponents“][“my-list“] 未找到
  6. 看日本如何用IoT打造智能工厂
  7. 在线中文繁简体转换工具
  8. 排序算法:二分排序(插入排序+二分查找)
  9. 服务器 硬盘灯,硬盘灯一直亮,手把手教你电脑硬盘指示灯一直亮怎么办
  10. 一些嵌入式开发有用的github上的开源代码库
  11. Buck电路的闭环PI控制
  12. 信号、频谱、能量、功率、噪声
  13. 鸡兔同笼的两种求解(C语言)
  14. 链家二手房采集数据分析
  15. 计算机社团收获作文,写智慧校园的优秀作文
  16. python二维码_Python 二维码制作
  17. 昨晚,谷歌发布了一个可怕的人工智能!
  18. (八)Python数据分析与挖掘实战(实战篇)——中医证型关联规则挖掘
  19. Android WiFi系统【转】
  20. 端口Banner信息的获取

热门文章

  1. 使用BeanUitls提高对象拷贝效率
  2. 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure(对于二分类问题)
  3. Java Web学习总结(10)学习总结-EL表达式
  4. 微软的正则表达式教程(一):正则表达式简介
  5. shell中的expect命令
  6. 蓝桥杯第八届省赛JAVA真题----正则问题
  7. 解决echart中:Cannot read property ‘queryComponents‘ of undefined
  8. php上传同一张图片,两种php实现图片上传的方法_PHP
  9. osm 搭建离线地图_使用离线OSM离线OpenLayers Web应用程序
  10. termux php 出错,android上的终端——termux