01 2019 档案
摘要:代码 java for(int i=0; i!=n; ++i) { int u = cin.nextInt(); int v = cin.nextInt(); edges.add(new Edge(u,v)); startpnt = u; if(g.get(u)==null) g.put(u, ne
阅读全文
摘要:与其说是训练不如说是重温。重新写了Java版本的代码。
阅读全文
摘要:分析 注意到跳跃的方向是一致的,所以我们需要维护一个数接下来跳到哪里去的问题。换句话说,就是对于一个数$A_i$,比它大的最小值$A_j$是谁?或者反过来。 这里有两种方案,一种是单调栈,简单说一下思路:维护一个递减的单调栈,每次放入元素时将比它大的栈顶元素弹出(说明这些元素都能在递减的情况下都能跳
阅读全文
摘要:分析 这题场上前缀和都想出来了,然后就没有然后了。。。哭惹.jpg 前缀和相减能够得到任意一段连续区间的和,然后他们取余$K$看余数是否为0就能得到。这是朴素的遍历算法。那么反过来说,如果两个前缀和都对$K$余$p$,那么他们相减一定能够被K整除。 我们就这么统计就可以了,然后一个简单的求和即可。想
阅读全文
摘要:分析 好久不刷题真的思维僵化,要考虑到这样一个结论:如果递增的三个数$x_i,x_{i+1},x_{i+2}$不符合题意,那么最大的两边之差一定大于等于第一条边,那么任何比第一条边小的都不能成立。这样一来,递增排序,然后线性找就可以了。 代码
阅读全文

浙公网安备 33010602011771号