题意很明确,也非常经典: 一个支持查询 区间中比k大的数的个数 并且支持单点修改的序列 ——因为题意可以转化为:查询这两个数中比后者大的个数.比后者小的个数.比前者大的个数.比前者小的个数(根据这4个就能算出增加/减少了多少对逆序对)并且把两个数修改掉 于是就出现了 ——来自百度 一个二分就能解决套个卵蛋woc身为一个蒟蒻,表示没有一个写得出的 于是我就想了一个好写(Rank100+几乎T掉)的方法: 首先复制一份原数据,把一份分块,并且保证每一块中的单调(也就是调用sqrt(n)次排序) 然后…
T1 辣鸡(ljh) 就是一道分类讨论的暴搜,外加一丢丢的减枝,然而我挂了,为啥呢,分类讨论变量名打错,大于小于号打反,能对才怪,写了sort为了调试就注释了,后来忘了解开,小减枝也没打.但是这道题做了2个小时不止,T2T3完全挤得没时间.做这道题只感觉心累... #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #d…
垃圾回收算法 标记清除法 先标记出需要回收的对象,然后一次性回收.缺点:会产生内存碎片,并且效率也不高. 标记压缩法 先标记出需要回收的对象,然后让存活对象向一端移动,移动的过程中进行回收辣鸡.避免了内存碎片问题. 复制算法 把内存划分出相等的两块,每次只用其中一块.当一块用完了,就将还存活的对象移动到另一块内存上,然后把辣鸡清理掉.内存分配不用来考虑碎片问题,只需要顺序分配即可.缺点:总有一块内存闲着没事干. 为了形象生动可爱,我画了个图 .. 垃圾回收器 串行收集器 串行辣鸡收集器只用一个单…
题目描述 辣鸡$ljh\ NOI$之后就退役了,然后就滚去学文化课了.然而在上化学课的时候,数学和化学都不好的$ljh$却被一道简单题难住了,受到了大佬的嘲笑.题目描述是这样的:在一个二维平面上有一层水分子,请问形成了多少个氢键?这个二维平面可以看做一个类似棋盘的东西,每个格子可以容纳一个水分子,左下角的格子为$(0,0)$,这个格子右边的格子为$(1,0)$,上方格子为$(0,1)$,以此类推.辣鸡$ljh$当然不会做了,所以他来求助$JeremyGou$,$JeremyGou$一眼就看穿了真…
这怕不是学长出的题吧 这题就很迷 这第一题吧,正解竟然是O(n2)的,我这是快气死了,考场上一直觉得aaaaa n2过不了过不了, 我就去枚举边了,然后调了两个小时,愣是没调出来,然后交了个暴力,就走了15pts 然后我就淦第二题,这第一眼扫过去,就觉得是树链剖分,然后连复杂度都没算,就生生的码了一个小时, 给我弄傻了,好像复杂度是(8n+?????nlogn)的,然后看了看最坏是(n2logn)的,不卡死你才怪!!! 然后这第三题吧,是这场考试中最让我后悔的一道题,看到概率期望就害怕,然后最后…
大佬 显然假期望 我奇思妙想出了一个式子$f[i]=f[i-1]+\sum\limits_{j=1}^{j<=m} C_{k \times j}^{k}\times w[j]$ 然后一想不对得容斥 于是我得到$f[i]=f[i-1]+\sum\limits_{j=1}^{j<=m} C_{j\times(k-1)}^{k-1} \times w[j]$ 但还是不对 现在思考第一个式子为什么不对 我们枚举矩阵选数 1 2 3 1 2 3 1 2 3 这样我们C的话概率会很鬼$\frac {4}{…
多线程比较简单的方式是继承Thread类,然后覆写run()方法,在客户端程序中通过调用对象的start方法即可启动一个线程,这个是多线程程序的标准写法. 错误代码: public class Client { public static void main(String[] args) throws InterruptedException { // 多线程对象 MultiThread multiThread = new MultiThread(); // 启动多线程 multiThread.…
覆写equals方法必须覆写hashCode方法,这条规则基本上每个Javaer都知道,这也是JDK API上反复说明的,不过为什么要这样做呢?这两个方法之间有什么关系呢?本建议就来解释该问题,我们先来看如下代码: public static void main(String[] args) { // Person类的实例作为Map的key Map<Person, Object> map = new HashMap<Person, Object>() { { put(new Per…
建议45: 覆写equals方法时不要识别不出自己 我们在写一个JavaBean时,经常会覆写equals方法,其目的是根据业务规则判断两个对象是否相等,比如我们写一个Person类,然后根据姓名判断两个实例对象是否相同,这在DAO(Data Access Objects)层是经常用到的.具体操作是先从数据库中获得两个DTO(Data Transfer Object,数据传输对象),然后判断它们是否是相等的,代码如下: class Person{ private String name; pub…
建议49: 推荐覆写toString方法 为什么要覆写toString方法,这个问题很简单,因为Java提供的默认toString方法不友好,打印出来看不懂,不覆写不行,看这样一段代码: public class Client { public static void main(String[] args) { System.out.println(new Person("张三")); } } class Person { private String name; public Per…