摘要:
https://www.luogu.org/problemnew/show/P5000 第一次写一个正经的高精度题。 很明显ASCII码的乘积绝对是溢出的。 那么直接上Java。正好学一手Java的字符串处理。 Java的字符串String有toCharArray方法,也可以传入char[]数组直接 阅读全文
摘要:
https://www.luogu.org/problemnew/show/P2152 一开始不知道Java可以有gcd,手写了个辗转相除法。 发现Number类在参数传递中传的并非是引用! 最主要要解决的是MLE的问题,经查询得知System.gc()方法可以手动回收内存。 但是它慢得离谱! 我们 阅读全文
摘要:
第一个Java的算法程序。记得可以使用Alt+'/'自动补全sysout和main之类的。 BigInteger在java.math.BigInteger中。 顺便把A*B也搞了,Java是有FFT优化的乘法。 减法也就是变成subtract罢了。 斐波那契大数: https://www.luogu 阅读全文
摘要:
https://www.luogu.org/problemnew/show/P1434 有向图的最长链怎么求?有环肯定不行,这里保证无环。(否则应该使用toposort先求出所有不带环的位置) 设dp[u]=以u点开始的最长链的长度,那么以u为子节点的v就有dp[v]=max(dp[v],dp[u] 阅读全文
摘要:
https://www.luogu.org/problemnew/show/P1433 并不是每一个求最短距离就是bfs,这个肯定是dfs。 直接计算15!可以知道枚举必定超时,但是! 我们dfs非常方便最优性剪枝! 这个是不加最优性剪枝的版本,果断T了: 阅读全文
摘要:
https://www.luogu.org/problemnew/show/P1118 next_permutation的第二个参数是最后一个元素的下一个元素,sort也是一样!有毒!这么低级的错误。而且应该是用do_while因为原始排列也要考虑! 使用sort跳过一些permutation的原理 阅读全文
摘要:
略有收获的bfs,使用了try_enqueue函数使得加入队列非常方便。性能理论上是一样的因为是inline? 还有就是左对齐是使用%-4d,相对于右对齐的%4d,还有右对齐前导零的%04d,自己试一下呗。 阅读全文
摘要:
https://www.luogu.org/problemnew/show/P1141 能互相到达的格子的答案自然是一样的,第一次dfs标记联通块,第二次dfs把cnt传递到整个联通卡并顺手消除vis标记(其实把vis标记改成另一个也可以的)。 阅读全文
摘要:
https://www.luogu.org/problemnew/show/P1219 一开始朴素检查对角线就TLE了,给对角线编码之后压缩了13倍时间? 找了很久的bug居然是&&写成了&&&,我喷了。 阅读全文
摘要:
https://www.luogu.org/problemnew/show/P1034 可能是数据太水了瞎搞都可以过。 判断两个平行于坐标轴的矩形相交(含顶点与边相交)的代码一并附上。 记得这里的xy和udlr是指数学上的坐标轴。 加入最优性剪枝:22ms,快了3倍? 阅读全文
摘要:
https://www.luogu.org/problemnew/show/P1403 可以直接用线性筛约数个数求出来,但实际上n以内i的倍数的个数为n/i的下整,要求的其实是 $$\sum\limits_{i=1}^{n}\lfloor\frac{n}{i}\rfloor$$ 可以直接分块搞出来。 阅读全文
摘要:
各种线性筛的合集: https://www.cnblogs.com/zhoushuyu/p/8275530.html 常见积性函数: μ(n):莫比乌斯函数φ(n):欧拉函数d(n):一个数nn的约数个数σ(n):一个数nn的约数和f(x)=x^k(k∈N):这个玩意儿也是积性函数 线性筛素数 线性 阅读全文