- 博客(219)
- 收藏
- 关注
原创 HDU 2669Romantic(扩展欧几里得)
Problem扩展欧几里得的裸题import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.math.BigInteger;import java.util.Arrays;import java.util.Scanner;class Ma...
2020-03-22 16:48:55
158
原创 HDU1061 Rightmost Digit (快速幂)
Problem快速幂模板原理如下import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.math.BigInteger;import java.util.Arrays;import java.util.Scanner;class ...
2020-03-22 10:52:02
100
原创 HDU1164 Eddy's research I (试除法)
Problem试除法根据题意处理一些边边角角的问题即可提交。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.math.BigInteger;import java.util.Arrays;import java.util.Sc...
2020-03-21 13:29:41
105
原创 HDU 1869 ( 六度分离 ) (Floyd)
ProblemFloyd算法,如果任何两个人的距离大于了7,六度理论即不成立,多源汇最短路径裸题。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.Scanner;clas...
2020-03-21 12:48:07
149
原创 HDU 2988 ( Dark roads ) (kruskal)
Problem最小生成树的裸题。克鲁斯卡尔算法描述import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;class Main { static BufferedReader br = new Buffe...
2020-03-21 12:46:32
167
原创 HDU 2544.最短路(bellman_ford)
Problem我发现HDU的题目水平是比较高的,但是有一个缺点是不便于调试,只给一个WA或者什么样的标记,而且有时候服务器也不稳定。前两天在复习图论最短路和最小生成树,这个题是最短路的裸题。这次用bellmanford算法解决。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStre...
2020-03-21 12:05:28
238
原创 AcWing 1242. 修改数组(并查集)
Problem是看不出用并查集能解决问题。就像单链表一样,初始所有的点指向自己,表示没用过,否则指向下一个点(+1),很巧妙的算法import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;class Main...
2020-03-16 16:13:34
175
原创 AcWing 1246. 等差数列(最大公约数)
Problem答案不难看出应该为 (a[n - 1] - a[0]) / d + 1因为要排序,所以a数组已经确定了,那么只能让公差d尽可能取大,此时用到所有差值的最大公约数即可别忘了最大公约数的O(1)复杂度的函数int gcd(int a, int b){ return b != 0 ? gcd(b, a % b) : a;}完整代码:import java.io.Buff...
2020-03-15 18:38:16
218
原创 AcWing 1248. 灵能传输(前缀和 + 贪心)
去年蓝桥杯省赛的压轴题,难度真是…和前面的题目没法比了,这个题目考试的时候基本没看,现在看来挺可惜的,不过估计做了也拿不了多少分。。Problem这个题的难点在于想法, 能够把前缀和的思路用上,发现经过题目描述的变换后,如果转换成前缀和,比如三个人前中后做公式,只需要交换S[l] 和 S[mid],但是S[0] 和 S[n]不可以动通过上述分析可以明确想要求得本题的最优解应使得所求序列尽量保...
2020-03-15 17:20:28
306
原创 AcWing 1247. 后缀表达式(贪婪)
Problem这个题由于可以自由的加括号,那么负数也可以变成加,想加就加想减就减1.特殊情况:m=0,直接输出和2.一般情况:把所有数排个序,最大的拿出来,放首项,把最小的数拿出来,给他一个减号,再套一个括号import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;...
2020-03-11 14:25:36
139
原创 AcWing 1239. 乘积最大(贪婪)
Problem第九届蓝桥B组省赛最后一题这个题问的是给一群数,问选k个相乘得到最大值,很明显是个贪心问题,但是可能没想到是用分类讨论能AC的题目,去年好像对这个题没有什么想法。1.k 如果是偶数的话,选出来的结果一定是非负数 , 原因如下:(1) # 负数的个数是偶数个的话,负负得正,那么一定是非负数(2) # 负数的个数如果是奇数个的话,那么我们就只选偶数个绝对值最大的负数2.k 如...
2020-03-08 22:48:25
219
原创 AcWing 1235. 付账问题(贪婪)
Problem这个题就是一群人吃饭,AA制某些人钱不够,如何付钱使得标准差最小?贪心问题,不够的全拿,然后依次计算平均值。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.uti...
2020-03-08 15:04:36
131
原创 AcWing 112. 雷达设备(贪婪)
Problem贪心问题,转化一下就变成了区间选点问题把每个岛屿在x轴的辐射区间映射上去,然后变成区间选点import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.Arrays;...
2020-03-07 11:54:55
289
原创 AcWing 122. 糖果传递(数学分析+贪心)
Problem这题还真是个不折不扣的数学化简问题。。假设每个小孩子给右边的孩子xi个糖果(负数就是反过来给)在第一个人中,一定会向第二个人拿糖果或者向第二个人给糖果,其数量为|A[1] - avg|,更新A[2]在第二个人中,一定会向第三个人拿糖果或者向第三个人给糖果,其数量为|A[2] - avg|,更新A[3]…在第(n - 1)个人中,一定会向第n个人拿糖果或者向第n个人给糖果,...
2020-03-06 15:30:35
233
原创 AcWing 1055. 股票买卖 II(贪婪)
Problem一个序列,可以随时抛,买股票,怎么说呢。就是一个类似逆序对,累计差值的双指针。打个比方1, 2, 3, 4, 6, 7, 8, 9,两个算法1. 2 - 1 + 3 - 2 + 4 - 3 + …2. 9 - 1其实答案是一样的,所以只需要双指针,后面的指针找到最后一个大于后一项的数,累加就可以了。import java.io.BufferedReader;im...
2020-03-04 14:19:33
187
1
原创 AcWing 1207. 大臣的旅费(树的直径)
Problem这个题是一个树的最长链,也叫树的直径的模板题。讲义一讲义二简单来说就是一棵带权树中求出一条路,这条路的权重之和是最大的。我选择了一个感觉稍微简单的解法,树形DP,dist[x] 代表从x以下的子树中权重之和最大的值。import java.io.BufferedReader;import java.io.InputStreamReader;import java.io...
2020-03-03 22:01:15
175
原创 AcWing 1233. 全球变暖(bfs)
Problem这个题依旧是一个bfs问题,做法是类似并查集那样,找到一个#就去搜索和这个#相连的所有#import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.ArrayDequ...
2020-02-29 16:02:59
228
原创 AcWing 1096. 地牢大师(三维bfs)
Problem类似这样的最值bfs问题已经记住了模板,就是用queue来解决的bfs和这一篇完全一样,就是扩展一下维度就可以了二维的情况import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import ...
2020-02-28 15:43:17
206
原创 AcWing 1240. 完全二叉树的权值(二叉树)
Problem第N次取2^N - 1^个数,判断哪次取数的累加最大。分析一下就很简单了。import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.ArrayDeque;import java.util.Queue;class ...
2020-02-28 14:54:45
365
原创 AcWing 1224. 交换瓶子(图环 or 搜索)
Problem这个题可以用暴力来做,做法是从前往后遍历,因为保证1-N的数据,如果排好序那么所有的下标对应都是该数字(下标从1开始),那么遍历到哪位如不符,就往后找符合的那一位。第二个做法稍微优化了一下,所有互相交换的元素形成一个环,一次性完成一个环的交换下面Java描述暴力做法,Cpp描述图环做法#include <cstring>#include <iostream...
2020-02-28 12:42:18
201
原创 AcWing 1113. 红与黑(dfs)
Problemdfs,这个题没有要求一个最值,可以用dfs,模板题import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;class Main { static BufferedReader br = new BufferedReader(new Inpu...
2020-02-27 22:00:38
263
原创 AcWing 1101. 献给阿尔吉侬的花束(bfs)
标准的bfs,不过和花束一点关系都没有…Problembfs模板,再复习一遍import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.ArrayDeque;import ja...
2020-02-27 21:06:00
505
2
原创 AcWing 1238. 日志统计(双指针)
Problem第九届蓝桥杯的题目,暴力会超时,这里用双指针优化。import java.io.*;import java.util.Arrays;public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static PrintW...
2020-02-27 15:52:59
218
原创 AcWing 1237. 螺旋折线(找规律)
Problem第九届蓝桥杯B组省赛题,前年比赛我还记得最后时刻写了暴力交上去,但是写的结构很差,是用递归写的,没有想到应该找规律直接O(1)过的。这个临时又写了个暴力import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;class Main { sta...
2020-02-26 16:13:27
326
原创 AcWing 1232. 三体攻击(三维差分)
差分和前缀和互为逆运算,这个题用三维差分,三维只是比较麻烦,和容斥原理比较类似。Problem好像是A组第六题,蓝桥杯省赛第六题居然已经这么难了?因为保证矩阵行列相乘小于1e6但不知道行和列分别有多大,所以需要用到数组下标映射,也就是代码中的public static int get(int i, int j, int k){...}import java.io.BufferedRea...
2020-02-26 14:24:38
461
3
原创 AcWing 1228. 油漆面积(线段树)
去年的这个时间发过这个问题,当时的解答是暴力解法去年的题解网上普遍都是暴力求解的,由于蓝桥的OJ并没有给出满数据的测试,所以暴力也能过,但是其实数据量达到5000就已经超时了,暴力简单,但是这个题的优化是很难的,需要用线段树优化,而且是一个很难想到,不常见的线段树做法。先贴上C++的AC代码,完全弄清楚了我再重新写一遍。#include <cstdio>#include &l...
2020-02-20 16:01:06
255
原创 AcWing 1215. 小朋友排队 (树状数组)
添加链接描述这个题其实需要证明一下答案就是每个数加上其前大于自己和其后小于自己的数,这就是每个数需要加的次数,用贪心法想到这个,然后证明其正确性其实是一个逆序对的问题,但是暴力求解会超时,需要用树状数组优化。import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;...
2020-02-19 11:09:30
165
原创 AcWing 1270. 数列区间最大值 (线段树)
Problem线段树模板题,线段树能解决的范围远多于树状数组,这个题的要求是求区间最大值。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;class Main { static Buffere...
2020-02-18 13:33:44
174
原创 AcWing 1265. 数星星 (树状数组)
Problem树状数组新手表示看不出这是一道树状数组的应用题。这个题需要累计左下角的星星数量,枚举会超时;纵坐标按照升序给出,对于新来的xy,y是当前纵坐标最大值,只需累计1到x的星星即可,然后树状数组优化。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;...
2020-02-17 12:56:01
212
原创 AcWing 1264. 动态求连续区间和(树状数组 || 线段树)
树状数组和线段树以前很少接触,特别是线段树,竞赛见到的次数还是不少的,今天就彻底搞明白一下。首先是树状数组,时间O(logN),能解决的问题是快速求动态的前缀和,也就是动态改变数组的值以后求前缀和(单点修改,区间查询),树状数组解决的就这一类问题,不过解决起来代码量小,速度快;对比线段树,能解决的问题就很广泛了。模板题Problem这个是树状数组的模板函数import java.io.B...
2020-02-16 16:08:26
229
原创 AcWing 1241. 外卖店优先级 (模拟)
Problem这个题是第十届也就是这次比赛好像是第六题还是第七题,是一道模拟外卖系统的题目,题目描述很简单,有外卖就加分,没有减分,分数大进缓存系统,少了出系统,模拟就可以,但是数据量有点大,单单的暴力模拟最后的满数据过不了。优化方法是将相同订单批次处理。AC代码:import java.io.*;import java.util.Arrays;class Main { st...
2020-02-15 15:20:28
180
原创 AcWing 788. 逆序对的数量 (归并)
Problem在分治后的每一层合并中顺便求出逆序对数量是这个题想法的由来,归并排序分治我们求的是从小到大的顺序,我们所求的逆序对恰好是逆序数量,与归并排序不谋而合。例如[3,4,1,2]中q[0]>q[2],则q[0],q[1]都与q[2]成逆序对,而q[mid]与q[i]有mid-i+1个数字,因此逆序对增加mid-i+1import java.io.BufferedReader;...
2020-02-15 12:10:19
215
原创 AcWing 1231. 航班时间 (日期时间)
Problem同样是恶心的时间问题,这个题有点类似初中物理的流水划船问题,正解是两次的时间相加除以2就可以了。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;public class Main { ...
2020-02-14 14:32:34
166
原创 AcWing 1229. 日期问题 (枚举)
Problem很恶心的日期问题,很容易楼某个特殊的数据。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;public class Main { static BufferedReader br...
2020-02-14 10:29:09
165
原创 AcWing 1219. 移动距离 (水题)
将点数转换成坐标即可Problemimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;class Main { static BufferedReader br = new BufferedRea...
2020-02-13 16:29:39
151
原创 AcWing 466. 回文日期 (枚举)
Problem水题这个题的简便之处在于输入模式的固定,固定的八位数,固定前四位年份依次是月份和天。因为一年的年份不会变,所以一年最多有一个回文数,只需要枚举一次即可,依次枚举判断即可,要注意闰年的判断,闰年分为普通闰年和世纪闰年普通闰年的条件是if (year % 4 == 0 && year % 100 != 0) return true;世纪闰年:if (yea...
2020-02-13 12:00:38
230
原创 AcWing 1204. 错误票据 (水题)
前两题想AC有难度没想到后两题都是水题。Problemimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.Arrays;class Main { static ...
2020-02-12 23:06:53
183
原创 AcWing 1245. 特别数的和 (枚举)
这个题就比较简单了,也是去年B组的一题。添加链接描述循环一边,依次判断。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;class Main { static BufferedReader ...
2020-02-12 22:39:48
120
原创 AcWing 1236. 递增三元组(枚举 + 二分||前缀和)
Problem这个题的数据量比较大,单纯的暴力是O(n3),次数会达到1015,这是在搞笑,得亏蓝桥是OI赛制,否则这个题AC个人觉得是比较困难的,但是经过学习提示以后这个题也不难,主要就是枚举b这个数组,因为如果枚举a,b和c的关系不稳定,需要再一层枚举去控制b和c的关系(枚举c的道理一样),所以首先想到枚举b以后优化a和c,具体优化方法有2个,二分法和前缀和法。第一个方法二分,需要将三个...
2020-02-12 20:16:09
317
原创 AcWing 1210. 连号区间数(枚举)
Problem这个题的数据量是104,暴力枚举+排序+依次判断是要超时的因为题面说了1-N,N个数的排列,那么没有重复的数,直接列首列尾的差值可以反应是否已经排好序,则可以省略判断和排序的时间。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import ...
2020-02-11 12:31:04
151
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅