摘要: "题目传送门" Description 给定$r$,求满足$x^2+y^2=r^2$的整数解组数。 Solution 先丢一个$3Blue1Brown$的科普向视频: "隐藏在素数规律中的$\pi$" 视频的前$20$分钟就足以解决这道题了,但还是建议看完。 视频中并没有证明费马平方和定理,由于证明 阅读全文
posted @ 2019-04-20 21:23 OIerC 阅读(136) 评论(0) 推荐(0) 编辑
摘要: Description 给定一个$N$个点$M$条边的$DAG(N,M\leq10^6)$,边权为$1$。删去一个点,使剩余图中的最长路径最短,求删去的点和最长路径长度。 Solution 神仙而有趣的一题$Orz$,可能讲的不是很清楚$QAQ$ 先求出终点为$u$的最长路$f_u$和起点为$u$的 阅读全文
posted @ 2019-04-19 21:34 OIerC 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 单调栈,顾名思义,就是一个元素递增(或递减)的栈。 一个单调递增的单调栈可以在$O(n)$的复杂度内求得序列内一个元素向左或向右第一个小于等于该元素的元素位置。 比如该序列为$1,5,2,6,4,3$ $1$进栈,栈内无元素,$L_1=0$ $(1)$ $5​$进栈,无出栈,$L_2=1​$(栈顶元 阅读全文
posted @ 2019-04-19 20:47 OIerC 阅读(882) 评论(0) 推荐(0) 编辑
摘要: 前置技能 1、二分答案 2、基础数据结构,如树状数组,线段树。 首先,二分答案求最大值的最小值大概长成下面这个样子: int solve(int l, int r) { while (l<r) { int mid=l+r>>1; if (check(mid)) l=mid+1; else r=mid 阅读全文
posted @ 2019-04-09 23:33 OIerC 阅读(166) 评论(0) 推荐(0) 编辑
摘要: "题目" "传送门" Description 给定一棵有根树,可以用$w_x$的代价控制$x$点,控制后可以给该点子树里的叶子同时加上一个数。求最小代价,使得叶子上为任何不同的数,你都可以把它们变为$0$。$n\leq10^5$ Solution 首先将叶子结点按照$dfs$序排序,为一个序列。 控 阅读全文
posted @ 2019-04-08 23:41 OIerC 阅读(252) 评论(0) 推荐(0) 编辑
摘要: "题目传送门" Description 给定$N$的排列($N\leq5000$),将任一区间最左侧的数插到该区间最右边的代价为$A$,将任一区间最右侧的数插到该区间最左边的代价为$B$,问将该排列排为升序的最小代价。 Solution 显然有一个$O(n^3)$的区间$dp$方法,但与正解无关。 阅读全文
posted @ 2019-04-08 00:22 OIerC 阅读(514) 评论(0) 推荐(1) 编辑
摘要: 拉格朗日插值主要用于求解如下问题: 给出$n$个二维点$(x_i,y_i)$,找出过所有点的多项式$f(x)$在$x$处的取值(通常$x$较大) 考虑对于每个点构造函数$f_i(x)$使得$f_i(x_i)=y_i$,且$\forall x_j(j\neq i) f_i(x_j)=0$。 如何满足后 阅读全文
posted @ 2019-04-04 00:39 OIerC 阅读(697) 评论(0) 推荐(0) 编辑
摘要: "题目" "传送门" Description $n$种花$(n\leq20)$,每种花不超过$f_i$朵,问总数为$s$的方案数 Solution 容斥+组合数学 因为$n$很小,考虑容斥,即无任何限制的方案数$ $至少一种不满足的方案数$+$至少两种不满足的方案数。。。 如何求无任何限制的方案数? 阅读全文
posted @ 2019-04-03 23:57 OIerC 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 先推荐一篇对我帮助很大的博客: "Kruskal重构树入门" 前置知识 1、$Kruskal$算法 2、基础数据结构,如 "主席树" 简述 $Kruskal$重构树与$Kruskal$算法密切相关。 我们知道,$Kruskal$算法是按照边权排序,依次合并节点,并用并查集维护联通。 $Kruskal 阅读全文
posted @ 2019-04-02 23:57 OIerC 阅读(4174) 评论(3) 推荐(3) 编辑
摘要: "题目传送门" Description ​我们定义对一棵树做一次变换的含义为:当以 1 号节点为根时,交换两个互相不为祖先的点的子树; ​一棵树的权值为对它进行至多一次变换能得到的最大直径长度; ​初始时你只有一个节点 1,你需要执行 n 1 个操作,第 i 次操作会给出一个整数 x,表示新加入第 阅读全文
posted @ 2019-04-02 22:18 OIerC 阅读(295) 评论(0) 推荐(0) 编辑