模拟
深街酒徒*
专业气氛组成员
展开
-
1241. 外卖店优先级 Java题解 (模拟)【第十届蓝桥杯省赛C++A/C组,JAVA A/B/C组】
优化:可以注意到订单的数量也是10^5,与店数规模相同,可以看出平均每个店只有一个订单,是非常离散化的,所以当遍历订单时,时间复杂度可以降为O(n)。可以先按订单的时间排序,依次遍历,遍历每份订单时,由于时间并不连续,所以为了可以知道上一份订单的时间(用来降低优先级),需要开一个数组,用来表示每个店最后一次出现订单的时刻,可以直接算出"一长段"时间的优先级,遍历完时,还需要将与t之前的没有出现订单的优先级降低。同时再开一个数组再记录每个店是否在优先缓存中,最后统计数量。原创 2022-03-27 22:44:19 · 1152 阅读 · 0 评论 -
1231. 航班时间 Java题解 (模拟)【第九届蓝桥杯省赛C++A组,JAVA A组】
对每一组数据,都转化成以当天 00:00:00 的秒为单位的数据,每过一天需要加上一天的秒数。由于:去的时间差 + 时差 = 回的时间差 - 时差,等号两边的含义为实际在飞机的时间。所以先计算出时差,在加上去的各当地的时间差就是最终答案。原创 2022-03-27 17:27:04 · 505 阅读 · 0 评论 -
1229. 日期问题 Java题解 (枚举) 【第八届蓝桥杯省赛C++B组,JAVA B组】
可以顺着题意将三个数所有可能组成的情况枚举出来,并判断是否为合法的日期,将符合条件的保存至set,最后输出,其中年份有19开头的和20开头的均需枚举。也可以逆向的在两个日期之间遍历,在合法日期的前提下找出符合三种格式的日期,即保证了有序,也不会有重复结果。原创 2022-03-27 12:30:31 · 1325 阅读 · 2 评论 -
1219. 移动距离 Java 题解 (模拟)【第六届蓝桥杯省赛C++B组,JAVA A/C组】
可以利用数组的下标规律直接求解:当空出[0][0]元素时,实际的楼号就相当于在原基础上加一,在计算时两数各减一的相对距离就是答案。而此时的每个数的行索引就等于n/6,列索引为n%6,但当基数行时,需要将列索引“翻转”,最后两坐标相差即为答案。时间复杂度为O(1)。原创 2022-03-27 11:16:39 · 908 阅读 · 0 评论 -
466. 回文日期 Java题解 (模拟)
找两个日期中间合法的回文数,一种直接的想法是:枚举这两个日期中间的所有日期,但在枚举时,需要考虑给出的两个日期是否在同一年,不仅需要将年份之间的日期枚举,还要将给出的那两个年份日期也要枚举,代码很冗长。可以先找出所有可能年份的回文数,题目给出年份是四位整数,只要求出每个数字的回文数,通过判断这个回文数是否为合法的日期并且在给定的范围内求解。原创 2022-03-26 12:55:03 · 670 阅读 · 0 评论 -
1204. 错误票据 Java题解 (模拟)【第四届蓝桥杯省赛C++A/B组,JAVA A/B组】
将序号都映射到哈希表中,并记录序号间的最大值和最小值,在遍历序号时,找出现了两次和没有出现过的数字。原创 2022-03-26 11:28:56 · 897 阅读 · 0 评论 -
1245. 特别数的和 Java 题解 (模拟)【第十届蓝桥杯省赛C++B组,JAVA B组】
可以在整数的基础上取出每个个位数验证,也可以将整数转为字符串验证。原创 2022-03-26 10:57:31 · 1125 阅读 · 0 评论 -
1210. 连号区间数 Java题解 (枚举)【第四届蓝桥杯省赛C++B组,JAVA B组】
通过控制区间的左右端点,并找出区间中的最大值和最小值,当满足连号区间时,最值差与索引差相等。求区间的最值时可以嵌套在区间中巧妙求出,从而降低复杂度。原创 2022-03-25 15:29:26 · 1136 阅读 · 0 评论 -
1216. 饮料换购 Java题解 (模拟)【第六届蓝桥杯省赛C++A/C组,JAVA B组】
模拟,既可以模拟一瓶一瓶喝,每到三个瓶盖再一瓶,也可以按一批饮料能再换多少盖子整体模拟。原创 2022-03-23 18:27:57 · 817 阅读 · 0 评论 -
95. 费解的开关 Java 题解
下面这种状态1011101101101111000011011在改变了最左上角的灯的状态后将变成:0111111101101111000011011再改变它正中间的灯后状态将变成:0111111001110011010011011给定一些游戏的初始状态,编写程序判断游戏者是否可能在6步以内使所有的灯都变亮。输入样例:3001110101110001110101110011101111011111011111...原创 2022-03-20 00:00:08 · 145 阅读 · 0 评论 -
1459. 奶牛体操 Java题解
输入样例:3 44 1 2 34 1 3 24 2 1 3输出样例:4样例解释一致的奶牛对为 (1,4)、(2,4)、(3,4)、(1,3)。解题思路:方法一:用递归实现组合型枚举,找出所有可能的奶牛对数,再依次对每一对奶牛进行校验,找出它们在每行的相对位置,并对符合条件的情况计数。方法二:题目中给出的数组,以一行为例,arr[i] = j : 表示第i名的位置是第j名奶牛。转化为loc[j] = i: 表示第j名奶牛所在的排列位置是第i个。由于二维数组的每原创 2022-03-19 13:01:48 · 539 阅读 · 0 评论