程序优化的最核心的思路 第一步,暴力解法。在没有任何时间、空间约束下,完成代码任务的开发。第二步,无效操作处理。将代码中的无效计算、无效存储剔除,降低时间或空间复杂度。第三步,时空转换。设计合理数据结构,完成时间复杂度向空间复杂度的转移。 说明:常用的降低时间复杂度的方法有递归、二分法、排序算法、动 ...
分类:
其他好文 时间:
2020-05-27 01:13:17
阅读次数:
120
一、概念 多态,是允许不同类的对象对同一消息做出不同的响应,是面向对象最核心的特征。 举个栗子,打印机,有黑白的打印机,可以打印黑白效果,有彩色打印机,可以打印彩色效果。 再举个栗子,上课铃响了,上体育课的学生跑到操场上站好,上语文课的学生在教室里坐好一样。 二、分类 1)编译时多态(也叫设计时多态 ...
分类:
编程语言 时间:
2020-05-26 22:10:09
阅读次数:
96
分析: 考虑最终所有水所在的区间,左右两边的土就挖成前缀最小值 假设区间是$[l,r]$,第一步即可省略,只需要考虑区间内部的情况。可以发现,最小化挖掉的土的体积就是最大化水 的高度,而且显然如果确定了水的高度,那么挖掉这个高度以上的所有的土,就可以求出这个高度以下最多可以放多 少体积的水。如果水多 ...
分类:
其他好文 时间:
2020-05-26 20:07:40
阅读次数:
51
题目链接 #解题思路 看这题第一眼就想到了二分,虽然也过了不过还有一个更好的解法。本题的核心就是如何找到那条可以最小的最大的边$S$,二分确实是一个办法,但是还有一种办法是求最小生成树,其最大边就是$S$。 因为最小生成树是将几条不重复的最小的边加入集合形成的树,那么如果要构造一棵树都所有边比最小生 ...
分类:
其他好文 时间:
2020-05-26 20:00:14
阅读次数:
58
题解 ZR246 数对子 题目大意 我们定义一个数对$(x,y)$是好的,当且仅当$x≤y$,且$x\operatorname y$的二进制表示下有奇数个$1$。 现在给定$n$个区间$[l_i,r_i]$,你需要对于每个$i\in[1,n]\(,输出有几对好的数\)(x,y)$满足$x$和$y$都 ...
分类:
其他好文 时间:
2020-05-26 18:37:33
阅读次数:
61
这一篇blog说说二分查找 其实二分我也是初学,也就是前几天才开始读课本,这几天才开始上手打代码,所以我觉得还是有点难度的, 其实二分粗略的可以理解为一个你npy和你玩的一个游戏, 让你猜1-1000里面的一个数,你每次告诉他一个数,他告诉你比答案大了还是小了,就很简单。 但是如果你是从1开始枚举, ...
分类:
其他好文 时间:
2020-05-26 18:21:28
阅读次数:
126
LINK:Multiset 主要点一下 二分和树状数组找第k大的做法. 线段树的做法是平凡的 开一个数组实现就能卡过. 考虑如树状数组何找第k大 二分+查询来判定是不优秀的。 考虑树状数组上倍增来做. 考虑从0开始跳 定义跳到的节点为前缀和. 那么不断跳累加权值即可. 第三种做法是二分 (其实我最先 ...
分类:
编程语言 时间:
2020-05-25 22:22:15
阅读次数:
81
"""user:version:function:二分查找除法的运算'/' 无论是否整除返回的都是 float ,暂且叫它精确除法例如 : 10/5,的到的结果是 2.0'//' 无论是否整除返回的都是 int ,而且是去尾整除例如 :5//2,得到的结果是 2'%' 是取余运算,返回两个余数,经常 ...
分类:
编程语言 时间:
2020-05-25 19:09:51
阅读次数:
63
题面 Time limit per test: 2 seconds Memory limit per test: 256 megabytes Description Consider all binary strings of length m ( 1≤m≤60 ). A binary string ...
分类:
其他好文 时间:
2020-05-25 12:26:07
阅读次数:
95
前言 Collections#sort 追踪代码进去看,会调用到Arrays.sort,看到这里时,你肯定会想,这不是很简单,Arrays.sort在元素较少时使用插入排序,较多时使用快速排序,更多时使用归并排序,不过我要告诉你,这句话有一个前提,那就是针对基本类型排序时,是按照这个顺序,而 Col ...
分类:
其他好文 时间:
2020-05-24 22:33:53
阅读次数:
81