摘要: 题意 有一个含有$2n(n \leqslant2000)$个实数的数列,取出$n$个向上取整,另$n$个向下取整。问取整后数列的和与原数列的和的差的绝对值。 就是说,令$a$为原数列,$b$为取整后数列,求 $$ min(abs(\sum_{i=1}^{2n}a \sum_{i=1}^{2n}b)) 阅读全文
posted @ 2018-09-13 21:07 chy_2003 阅读(127) 评论(0) 推荐(1) 编辑
摘要: ~~51Nod是个好地方啊~~ 题意 51Nod基础题第二题,高精度加法,可能有负数。 解题 如果按照一般的高精度,我们发现要分情况讨论,还要写高精度加法和减法,代码实现有点烦。而初中数学里说,省略加号的和。也就是说,只有加法,没有减法。那么我们又没有办法在做高精度的时候也统一加减法? ~~当然有咯 阅读全文
posted @ 2018-09-13 14:44 chy_2003 阅读(696) 评论(0) 推荐(1) 编辑
摘要: [TOC] 主定理 递归中,一个规模为n的问题分成a个规模为n/b的问题,额外计算复杂度为c n^d,那么 $$T(n) = O(n^d\log{n})(a = b^d)$$ $$T(n) = O(n^d) (a b^d)$$ 证明 我们画出递归树,则递归树共有logb(n)+1层。对于第j层,有a 阅读全文
posted @ 2018-09-13 11:26 chy_2003 阅读(879) 评论(0) 推荐(1) 编辑
摘要: 题目大意 设有一个数组A和对A的一个操作f。那么f(A)返回一个最小的k,使得A能分成k组(每组元素不一定连续,但每个元素一定属于某一组),且每组里的任意两个元素的乘积是完全平方数。 现有一个长度为n的数组A,问有多少中情况,从A中取出一段连续的子序列B,使f(B)=k(k = 1...n) 解题思 阅读全文
posted @ 2018-09-13 11:25 chy_2003 阅读(140) 评论(0) 推荐(1) 编辑
摘要: 题意 给定一个长度为n的数组A,将它变为一颗k叉树(1 using namespace std; struct Node{ int x, id; Node(int x_ = 0, int id_ = 0) {x = x_; id = id_;} }; const int MAXN = 200010; 阅读全文
posted @ 2018-09-13 11:24 chy_2003 阅读(270) 评论(0) 推荐(1) 编辑
摘要: "原题链接" 题目大意 给定一棵根为1,初始时所有节点值为0的树,进行以下三个操作: 将以某点为根的子树节点值都变为1 将某个节点及其祖先的值都变为0 询问某个节点的值 解题思路 这是一道裸的树链剖分题。下面详细地介绍一下树链剖分。 树链剖分预备知识: 线段树、DFS序 树链剖分想法|起源 首先,如 阅读全文
posted @ 2018-09-13 11:23 chy_2003 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 概览: T1 枚举 T2 状压DP T3 DP TopCoder SRM 667 Div.2 T1 解题思路 由于数据范围很小,所以直接枚举所有点,判断是否可行。时间复杂度O(δX × δY),空间复杂度O(1)。 参考程序段 TopCoder SRM 667 Div.2 T2 解题思路 可能大家的 阅读全文
posted @ 2018-09-13 11:22 chy_2003 阅读(116) 评论(0) 推荐(0) 编辑
摘要: T1 解题思路 这题应该不是很难,主要是题意理解问题。 注意给出的两个数组里映射关系已经对应好了,只要判断是否为双射即可 参考程序 C++ include using namespace std; class RelationClassifier { public: string isBijecti 阅读全文
posted @ 2018-09-13 11:20 chy_2003 阅读(180) 评论(0) 推荐(1) 编辑
摘要: 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3649 这题倍增维护信息之多,也能算是一道毒瘤题了…… 解题思路 这题分为两个部分,第一个是最大生成树,第二个是若干个询问,问在生成树上 $ x y $ 的路径上最大 阅读全文
posted @ 2018-09-13 11:19 chy_2003 阅读(217) 评论(0) 推荐(1) 编辑