
Freshman丶知识点
文章平均质量分 52
ACM小学生
永远克服不了的就是懒惰
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线段树详解 (原理,实现与应用)
线段树详解By 岩之痕综述假设有编号从1到n的n个点,每个点都存了一些信息,用[L,R]表示下标从L到R的这些点。线段树的用处就是,对编号连续的一些点进行修改或者统计操作,修改和统计的复杂度都是O(log2(n)).线段树的原理,就是,将[1,n]分解成若干特定的子区间(数量不超过4*n),然后,将每个区间[L,R]都分解为少量特定的子区间,通过对这些少量子区间的修改或者统计,来实现快速对[L,R]转载 2017-07-24 11:27:06 · 594 阅读 · 0 评论 -
整数快速幂
快速幂 简介快速幂的目的就是做到快速求幂,假设我们要求 a^b ,按照平时的算法就是把a连乘b次,这样一来时间复杂度是O(b)也即是O(n)级别,快速幂能做到O(logn),快了好多好多 它的原理如下: 假设我们要求 a^b ,那么其实b是可以拆成二进制的,该二进制数第i位的权为 2^(i-1) ,例如当 b=11 时,11的二进制为 1011 , 11=2³×1+2²×0+2¹×1+2º×1原创 2017-07-31 16:58:41 · 509 阅读 · 0 评论 -
ACM解题小技巧
1一般用C语言节约空间,要用C++库函数或STL时才用C++; cout,cin和printf,scanf最好不要混用。 大数据输入输出时最好不要用cin,cout,防止超时。2有时候int型不够用,可以用long long或__int64型(两个下划线__)。 值类型表示值介于-2^63 ( -9,223,372,036,854,775,808) 到2^63-1(+9,223,372,036转载 2017-08-12 11:10:59 · 803 阅读 · 0 评论 -
17暑假多校联赛6.8 HDU 6103 Kirinriki
KirinrikiTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem DescriptionWe define the distance of two strings A and B with same length n is disA,B=∑i=0n−1|Ai−Bn原创 2017-08-12 10:34:40 · 332 阅读 · 0 评论 -
HDU 1465 不容易系列之一(错排公式推导)
不容易系列之一Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Description大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了! 做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易的道理一样。 话虽原创 2017-07-25 10:05:58 · 420 阅读 · 0 评论 -
C++中的1LL
今天看代码时发现一句 long long ANS=1LL*num*((1LL)*n*(n-1))/2; ,其中用了1LL;LL其实代表long long,*1LL是为了在计算时,把int类型的变量转化为long long,然后再赋值给long long类型的变量。代码中的ANS的定义为: long long ANS ANS是long long类型的, ANS=1LL*num*((1LL)*n*(原创 2017-07-29 09:09:52 · 18319 阅读 · 0 评论 -
ACM算法分类汇总
基础 排序 二分三分 贪心 模拟大数 STL 位运算 rand 搜索 Flood fill DFS BFS 预处理 双向广搜 A*启发式搜索 IDA* 迭代加原创 2017-08-14 17:55:43 · 1893 阅读 · 0 评论 -
位运算概念与运用
程序中的所有数在计算机内存中都是以二进制的形式储存的,位运算就是直接对整数在内存中的二进制位进行操作的运算位运算符: & 按位与(and) | 按位或(or) ^ 按位异或(xor) ~ 按位取反(not) << 左移(shl) >> 带符号右移(shr) 优先级 优先等级 运算符 1 ~ 2 <<、>> 3 &原创 2017-08-15 09:55:57 · 2841 阅读 · 0 评论 -
N^N最高位,阶乘最高位
求N^N最高位,阶乘最高位求n^n和n!的最高位数,核心思想就是取10为底的对数推公式 在求n!时,还要用到斯特林公式 来求n!的近似值。 N^N最高位n^n的位数:k = [lg(n^n)]+1 = [n*lg(n)] 最高位数作个位:x = n^n/10^(k-1) 取对数:lg(x) = n*lg(n)-(k-1) = (n*lg(n)-[n*lg(n)]) 最高位数...原创 2018-04-11 16:21:53 · 1703 阅读 · 0 评论