线段树模板
「LYOI2018 Summer」Hzy’s Rabbit Array 参考: wyy603 「LYOI2018 Summer」Hzy’s Rabbit...
Java虚拟机笔记-自定义类加载器
jvm自定义类加载器 JDK加载类流程参考:https://juejin.im/post/5a1fad585188252ae93ab953 loadClass123456789101112131415161718192021222324252627282930313233343536373839404142protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException{ synchronized (getClassLoadingLock(name)) { /** * 1.检查类是否已经加载过 * @param name 类的二进制名字 * @return 类对象(Class<?>),如果没有加载该类,则返回null */ Class c = findLoadedClass(name); if (c...
容斥与抽屉定理
容斥与抽屉定理 容斥定理定理参考:百度百科 在计数时,必须注意没有重复,没有遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。 两个集合的容斥关系公式:A∪B =|A∪B| = |A|+|B| - |A∩B |(∩:重合的部分) 三个集合的容斥关系公式:|A∪B∪C| = |A|+|B|+|C| - |A∩B| - |B∩C| - |C∩A| + |A∩B∩C| 例如三个集合的关系: (图里面的A+B+C划红色部分应该是划去{2,3,4,2,1,2},即划去A∩B,B∩C,A∩C) 一般情况: 51nod1284 容斥定理,先求反面,即1-N有多少是2 3 5 7的倍数,然后再用总数减去反面的数量即为所求。 1cnt =...
Java虚拟机笔记-ClassLoder部分文档解读
ClassLoder部分文档解读 Documentation123java.lang public abstract class ClassLoaderextends Object 123A class loader is an object that is responsible for loading classes. The class ClassLoader is an abstract class. Given the binary name of a class, a class loader should attempt to locate or generate data that constitutes a definition for the class. A typical strategy is to transform the name into a file name and then read a "class file" of that name from a file...
Java虚拟机笔记-类加载器双亲委托派制2
继续学习jvm类加载器双亲委派机制 循环获得ClassLoader1234567891011121314151617181920public class Main{ public static void main(String[] args) throws Exception{ //获取系统类加载器 ClassLoader classLoader = ClassLoader.getSystemClassLoader(); System.out.println(classLoader); System.out.println("-------------------"); while(null != classLoader){ //获取加载器的父亲 classLoader = classLoader.getParent(); ...
单调栈
...
单调队列
单调队列及其优化dp 单调队列poj2823—Sliding Window 大意:给你一个长度为N的数组,一个长为K的滑动的窗体从最左移至最右端,你只能见到窗口的K个数,每次窗体向右移动一位,你的任务是找出窗体每个时刻中的最大值与最小值 优先队列优先队列能够进行排序,窗口往右一位,就把一个元素放到队列里面,然后每次取队首元素,如果队首元素的id在这个框的范围内的话,那么就取队首,如果不是的话那么就出队,找下一个队首元素,时间复杂度为O(nlogn) 对优先队列改良—单调队列O(n)基本思想:同样维护队首元素作为答案,去掉多余的元素(维护单调性) 因为是求最大值,所以维护一个单调递减队列,其队首就是最大值,就是我们想要的答案 L L+1 …… R-1 R 编号 A[L] A[L+1] …… A[R-1] A[R] 值 B[L] B[L+1] …… B[R-1] B[R+1] 上面单调递减队列满足: A[i+1]>A[i]>A[i-1] &&...