摘要: "Luogu 3708 Koishi的数学题" 输入$n$,设$f_x=\sum_{i=1}^{n}(x\bmod i)$,输出$f_1,f_2,…,f_n$。$1≤n≤10^6$。 "Luogu 1274 魔术数字游戏" 在4\ 4方格中分别填入1~16,使得任意一组指定(每一行、每一列、两条对角 阅读全文
posted @ 2017-10-02 20:47 Planet6174 阅读(195) 评论(0) 推荐(0) 编辑
摘要: "原题" 树的直径。严谨的证明还没搞懂。 或许三次BFS可以写个templete缩短代码? 阅读全文
posted @ 2017-09-18 22:08 Planet6174 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 无向图 有向图 顶点的度 顶点的度(degree) 连接该顶点有多少条边。握手引理(handshaking lemma) 无向图中所有顶点的度之和是边数的两倍。 顶点的入/出度(indegree/ outdegree) 有多少条边指向该顶点/从该顶点出发。 DFS树 树边(tree edge) 在D 阅读全文
posted @ 2017-08-28 12:25 Planet6174 阅读(1298) 评论(0) 推荐(0) 编辑
摘要: "HDU3507" 题目大意:一篇文章有$N(N≤500,000)$个单词,单词$i(0≤i 阅读全文
posted @ 2017-08-25 20:22 Planet6174 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 大部分照搬了 "《C 和 C++ 中的指针——可能是中文网络中关于 C 和 C++ 指针最好的文章》" 数据、指令和内存 在冯·诺依曼体系中,程序的数据和指令,是存放在同一空间中的。具体到 C 和 C++ 语言来说,对应数据的那部分内存,存储的自然是数据;对应函数的那部分内存,存储的就是指令。 因此 阅读全文
posted @ 2017-08-23 21:52 Planet6174 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 更新:之前整除的符号写反了……(手动慌张分析) 这种算法及能解决的问题在高中课本《 "初等数论初步" 》就有,写这篇博客是希望初中生能看懂。 前置技能:$a\Leftrightarrow b$意思是a "当且仅当" b。简单来说若$a\Leftrightarrow b$,则一定满足①$a$成立时$b 阅读全文
posted @ 2017-08-21 11:46 Planet6174 阅读(963) 评论(0) 推荐(0) 编辑
摘要: 离散化是程序设计中一个非常常用的技巧,它可以有效的降低时间复杂度。其基本思想就是在众多可能的情况中“只考虑我需要用的值”。 —— "《什么是离散化?》Matrix67" 不过目前接触到的离散化中,基本上都是 区间离散化后只留下端点/边界 、 复杂的函数图象离散化后只留下极值 。以下内容大部分都从Ma 阅读全文
posted @ 2017-08-17 22:10 Planet6174 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 设数列$a$有$N$个元素。如果在$ia_j$,则$(i,j)$就称为$a$中的一个逆序对。求逆序对的数目。 cpp include include using namespace std; const int maxn = 200000; struct node { int v, id; } b[ 阅读全文
posted @ 2017-08-17 20:15 Planet6174 阅读(191) 评论(0) 推荐(0) 编辑
摘要: "POJ3667" BZOJ1593 洛谷2894 学线段树时,过了惰性标记后的下一个坎:区间合并与拆分。 每个结点上,除了要存该区间内空闲区间的最大长度,还要多维护两个值: 从左/右端数起的空闲区间的长度 。 查找最左端的长度≥x的区间时: 1. 如果该结点的 程序中有大量重复,所以有多处重构。 阅读全文
posted @ 2017-08-17 14:19 Planet6174 阅读(267) 评论(0) 推荐(0) 编辑
摘要: cpp include include using namespace std; const int base = 52, MOD = 4999661, MAXN = 1e6 + 1; char s[MAXN], t[MAXN]; int i, j, ans, lens, lent, hashs, 阅读全文
posted @ 2017-08-14 22:03 Planet6174 阅读(348) 评论(0) 推荐(1) 编辑