NC
天人五衰《中》
仙人抚我顶。揭发。。。。
展开
-
CNSlidingWindowJAVA实现
题目分析按题面,直接上单调队列可以用两个单调队列求解,一个队列单减来维护区间最大,一个队列单增来维护区间最小。代码import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.io.StreamTokenizer;p原创 2020-05-28 20:43:34 · 137 阅读 · 0 评论 -
NCLaptopJAVA实现
题目分析两个关键字都是从大到小排序,可以保证左边的第一关键字比右边大,在此基础上从左到右维护一个最大第二关键字判断当前笔记本是否被完虐,可以求出被碾压的笔记本数 。做法很简单。假设内存为a,速度为b,题目要求我们求ai<aj,bi<bj的j有多少 。根据上面的排序方法,从左到右a是单减的,然后只要从左到右枚举,只要考虑当前元素的b小于前面的b就会被完爆。代码import java.util.Arrays;import java.util.Scanner;public原创 2020-05-27 10:16:49 · 257 阅读 · 0 评论 -
NC分数线划定JAVA实现
题目分析根据两个关键字排序之后,按题目输出就完事了首先排好序,过笔试的人为m*1.5,int类型下自动向下取整,可以求得分数线。然后枚举大于等于分数线,得到真实过笔试人数,然后输出这些符合要求的人即可。代码import java.util.Arrays;import java.util.Scanner;public class 分数线 { public static class off implements Comparable<off>{ private int原创 2020-05-26 19:16:39 · 359 阅读 · 0 评论 -
NC小C的记事本JAVA实现
题目分析用栈来存储每次操作之后的结果,出栈代表回滚到上一次操作字符串不大,可以用栈来存储每次的操作后的结果,出栈后的栈顶为上次操作之前的字符串。 维护一个当前字符串S。操作1:把S与要加的字符串相连,然后入栈。 操作2:按题意来更新S,然后入栈。操作3:直接输出当前S的第k个字符。操作4:出栈回滚,更新当前字符串S。PS:是多组输入,快读快输(开始没看到,被坑到吐QAQ)代码import java.io.BufferedReader;import java.io.BufferedW原创 2020-05-25 18:46:18 · 132 阅读 · 0 评论 -
NC兔子的逆序对JAVA实现
题目分析树状数组求解逆序对,至于后面的反转区间,通过化解公式可知与(R-L+1)*(R-L)/2的奇偶有关先求解总的逆序对,求法很多我用的数组数组,通过求出顺序对,然后和总序对相减求出总的逆序对。反转区间,可以看出它不影响反转区间之外的逆序对,只会影响内部。通过公式 总序对=逆序对+顺序对 可知 ,假设此区间左右区间端点为L,R,区间的逆序对为X,而总序对可知为(R-L+1)(R-L)/2)。如果反转,逆序对变为(R-L+1)(R-L)/2)-X.与之前逆序对数相差(R-L+1)(R-L)原创 2020-05-24 16:21:12 · 99 阅读 · 0 评论 -
NC华华教月月做数学JAVA实现
题目分析快速幂+龟速乘KO一眼过去可以知道是个快速幂能秒的题。然后看下数据范围P<=10^18,这会导致相乘的时候可能超long long。于是需要龟(快)速乘来解决。代码import java.util.Scanner;public class 华华数学 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int t=sc.nextInt(); long a,原创 2020-05-24 15:42:01 · 96 阅读 · 0 评论 -
NC糖糖别胡说,我真的不是签到题目JAVA实现
题目分析从后往前枚举每个糖糖是否会被消灭。讨论每个糖糖被消灭的情况是,后面的糖糖有不是同组且能力值比它高。然后发功时间,可以预处理出n秒后假设糖糖没死的能力值。由前面可知,被消灭只与后面的糖糖有关,假设第i个糖糖被后面的第j个糖糖消灭,以第j个糖糖的视角来看,自它之后发的功都不影响它消灭第i个糖糖。所以预处理出的i,j糖糖能力值可以看成在第j秒时,第i个糖糖的能力值加上之后发的功,第j个糖糖的能力值加上之后发的功。之后的功不受影响,只要第j秒时第j个糖糖的能力值大于第i个且不同组。简单的说原创 2020-05-23 14:43:37 · 154 阅读 · 0 评论 -
NC奇♂妙拆分JAVA实现
题目分析枚举1一直到根号n,找到因子,就把n变成n/因数,答案+1。(不要忘记最后的n自身也是一个因子)为拆成最多的且不重复的自然数乘积,所以尽量从小的自然数拆起,从1开始枚举到根号N(防止遇到大素数这种情况,N为目前数),是否为满足条件(因子)的自然数。代码import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner sc=new Scanner(Syste原创 2020-05-23 14:04:37 · 157 阅读 · 0 评论 -
NC数学考试JAVA实现
题目分析通过前缀和来求取区间分数和,从左到又枚举区间,答案及当前区间与之前最大区间之和的最优值。通过前缀和优化时间复杂度,然后本题题意是求两个不连续区间最大和,及两个固定长度区间最少间距为1的最大区间与次小区间之和。我们可以枚举一个区间,把它看做最大区间或次小区间。求它与它之前符合条件的最大区间之和更新最终答案。为什么没有之后符合条件的呢?因为如果之后有更优的区间选择的话,枚举到后面这个区间时会更新答案,避免重复计算。代码import java.util.Scanner;publi原创 2020-05-22 13:20:16 · 138 阅读 · 0 评论 -
NC拼数JAVA实现
题目思路原创 2020-05-22 12:43:22 · 99 阅读 · 0 评论