p.s. 复合函数求导时千万不能先带值,再求导. 一定要先将符合函数按照求导的规则展开,再带值. 设 $f(x)=g(h(x))$,则对 $f(x)$ 求导: $f'(x)=h'(x)g'(h(x))$ 此题中,我们用 LCT 维护 $x^{i}$ 前的系数和,每次询问时将一条链的系数和提出,将 $x$ 带入其前 15 项即可. Code: #include<bits/stdc++.h> using namespace std; #define maxn 500000 #define M 17…
5020: [THUWC 2017]在美妙的数学王国中畅游 Time Limit: 80 Sec  Memory Limit: 512 MBSec  Special JudgeSubmit: 323  Solved: 136[Submit][Status][Discuss] Description 数字和数学规律主宰着这个世界.   机器的运转,   生命的消长,   宇宙的进程,   这些神秘而又美妙的过程无不可以用数学的语言展现出来.   这印证了一句古老的名言:   “学好数理化,走遍天下…
咕咕咕?咕咕咕! 题意: Description 数字和数学规律主宰着这个世界. 机器的运转, 生命的消长, 宇宙的进程, 这些神秘而又美妙的过程无不可以用数学的语言展现出来. 这印证了一句古老的名言: “学好数理化,走遍天下都不怕.” 学渣小R被大学的数学课程虐得生活不能自理,微积分的成绩曾是他在教室里上的课的最低分.然而他的某位陈姓室友却能轻松地在数学考试中得到满分.为了提升自己的数学课成绩,有一天晚上(在他睡觉的时候),他来到了数学王国. 数学王国中,每个人的智商可以用一个属于 [0,1]…
Description 数字和数学规律主宰着这个世界.   机器的运转,   生命的消长,   宇宙的进程,   这些神秘而又美妙的过程无不可以用数学的语言展现出来.   这印证了一句古老的名言:   “学好数理化,走遍天下都不怕.”   学渣小R被大学的数学课程虐得生活不能自理,微积分的成绩曾是他在教室里上的课的最低分.然而他的某位陈姓室友却能轻松地在数学考试中得到满分.为了提升自己的数学课成绩,有一天晚上(在他睡觉的时候),他来到了数学王国.   数学王国中,每个人的智商可以用一个属于 [0…
传送门 题意:反正就是一堆操作 LCT总是和玄学东西放在一起我们不妨令$x_0=0.5$(其实取什么都是一样的,但是最好取在$[0,1]$的范围内),将其代入给出的式子,我们得到的$f(x)$的式子就是一个多项式了.然后复习一下导数:$(Cf(x))'=Cf'(x)$($C$为常数)$sin'(x)=cos(x),cos'(x)=-sin(x),(e^x)'=e^x,C'=0 , (ax+b)'=a$令$g(x)=u$,则$f[g(x)]' = f'(u) \times g'(x)$有了这些式子…
题目大意 给你一棵树,每个点有一个函数\(f(x)\) 正弦函数 \(\sin(ax+b) (a\in[0,1],b\in[0,\pi],a+b\in[0,\pi])\) 指数函数 \(e^{ax+b} (a\in[−1,1],b\in[−2,0],a+b\in[−2,0])\) 一次函数 \(ax+b (a\in[−1,1],b\in[0,1],a+b\in[0,1])\) 还有一些操作: 操作1:连接两个点(保证连接完后还是森林) 操作2:断开两个点之间的边 操作3:修改某一个点的函数 操作…
传送门 毒瘤出题人卡精度-- 思路 看到森林里加边删边,容易想到LCT. 然而LCT上似乎很难实现往一条链里代一个数进去求和,怎么办呢? 善良的出题人在下方给了提示:把奇怪的函数泰勒展开搞成多项式,就很好维护了. 注意到数都很小,精度问题不会太大(那你还被卡),可以直接在\(0\)处泰勒展开更为方便. 然后就做完啦~ 代码 要开O2才能过QwQ #include<bits/stdc++.h> namespace my_std{ using namespace std; #define pii…
题面 LOJ传送门 思路 这里很重要 它提示我们,把给定的三个函数泰勒展开,并用LCT维护每一项泰勒展开式的值,维护十几项就满足了题目的精度要求 我们考虑一个函数在0位置的泰勒展开 $f(x)=\sum_{i=0}^{\infty} \frac{x^i f^{(i)}(0)}{i!}$ 发现后面式子里面的$\frac{x^i}{x!}$可以留到询问时候处理,我们只需要维护$\sum_{i=0}^{\infty} f^{(i)}(0)$即可 对于$f(x)=sin(ax+b)$,其导函数如下: $…
题目大意: 传送门 给一个动态树,每个节点上维护一个函数为$f(x)=sin(ax+b)$.$f(x)=e^{ax+b}$.$f(x)=ax+b$中的一个. 支持删边连边,修改节点上函数的操作. 每次询问$u$到$v$路径上所有函数带入$x$值的和. 题解: 给了个泰勒公式 (粘贴自百度) 不过……要是会导数这题也应该知道……不会导数给了也是白给……不知道出题人怎么想的…… 话说直接给麦克劳林展开+导数不好吗…… 因为$f(x)=e^x$的导数$f'(x)=e^x$所有当取$x_0=0$时就有其…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5020 https://www.luogu.org/problemnew/show/P4546 如果保证 x=1 ,则可以用 LCT 维护每个点的函数值.不然的话就用 LCT 拿出那条链,dfs 一下 splay 现算.可以得 60 分. #include<cstdio> #include<cstring> #include<algorithm> #include&…
题目:https://www.luogu.org/problemnew/show/P4546 先写了个55分的部分分,直接用LCT维护即可,在洛谷上拿了60分: 注意各处 pushup,而且 splay 维护的是一条链但其形态不一定是一条链! #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespa…
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5020 https://loj.ac/problem/2289 题解 这个 appear 和 disappear 操作显然是强行加上去用力啊增加代码长度的. 所以相当于就是什么东西套个 LCT 就行了. 所以考虑怎么快速求出一堆东西的分值和. \(sin, exp\),一次函数之间的加法似乎并没有什么优美的性质,所以我们考虑泰勒展开. \[ e^v = \sum_{i=0}^{\infty}…
[THUWC2017]在美妙的数学王国中畅游 e和sin信息不能直接合并 泰勒展开,大于21次太小,认为是0,保留前21次多项式即可 然后就把e,sin ,kx+b都变成多项式了,pushup合并 上LCT // luogu-judger-enable-o2 // luogu-judger-enable-o2 #include<bits/stdc++.h> #define reg register int #define il inline #define fi first #define s…
首先发现有连边和删边的操作,所以我们肯定要用\(LCT\)来进行维护. 接下来考虑如何进行\(LCT\)上的信息合并. \(f=1\),则函数为\(f(x)=sin(ax+b)\) \(f=2\),则函数为\(f(x)=e^{ax+b}\) \(f=3\),则函数为\(f(x)=ax+b\) 这道题中的信息为这三个函数,因为\(sin(ax+b)\)和\(e^{ax+b}\)不好处理,所以用泰勒展开都其处理为多项式的形式,再进行多项式的合并即可. 泰勒公式: \[f(x)=\sum_{i=0}^…
分析 又有毒瘤出题人把数学题出在树上了. 根据泰勒展开,有: \[e^x=1+\frac{1}{1!}x+\frac{1}{2!}x^2+\frac{1}{3!}x^3+...\] \[sin(x)=x-\frac{1}{3!}x^3+\frac{1}{5!}x^5-...\] 然而题目里\(x\)的位置是一个\(ax+b\)怎么办啊?直接根据二项式定理暴力展开就好了. 题目中要求支持加边删边,可以想到肯定是LCT.维护一下链上所有结点各次项系数和,查询时直接利用整条链的信息计算答案即可. 计算…
题意 题意奇奇怪怪,这里就不写了. \(\texttt{Data Range:}1\leq n\leq 10^5,1\leq m\leq 2\times 10^5\) 题解 为什么你们都是卡在数学方面,难道只有我卡在不晓得怎么维护上面吗 看到下面的题解通篇的泰勒展开,我决定写一篇从 \(\texttt{EGF}\) 上说明的题解,而且公式也比下面的清晰的多. 首先我们做个热身,先来看 \(e^x,\sin x,\cos x\) 对应的 \(\texttt{EGF}\): \[e^x=\sum\l…
如果只有第3个操作,那么这就是个sd题,随便lct搞搞就过去了 然后就是一个神仙东西 taylor公式 我不会,看gsy博客https://www.cnblogs.com/zhoushuyu/p/8148732.html #include<bits/stdc++.h> #define il inline #define vd void typedef long long ll; #define maxn 100010 #define k 16 il int gi(){ int x=0,f=1;…
明摆着的LCT,问题在于如何维护答案.首先注意到给出的泰勒展开式,并且所给函数求导非常方便,肯定要用上这玩意.容易想到展开好多次达到精度要求后忽略余项.因为x∈[0,1]而精度又与|x-x0|有关,当然是维护x=0.5时的各种东西,粗略算下大概到第13项就可以了.具体要维护的东西当然是对于x的不同次数分别维护一个和.注意编号从0开始. #include<iostream> #include<cstdio> #include<cmath> #include<cstd…
题目大意 有一个n(\(n\leq 10^5\))个点的森林,每个点\(u\)上有个函数\(f_u(x)\),是形如\(ax+b\)或\(e^{ax+b}\)或\(sin(ax+b)\)的函数,保证当\(x\in[0,1]\)时,\(f_u(x)\in[0,1]\) 有\(q(q\leq 2*10^5)\)个操作,每个操作是以下三个中的一个: 1.连接一条边,保证这条边的两个端点之前不连通 2.切断一条边,保证这条边存在 3.查询,给出\(u,v,x(u,x\leq n, 0\leq x \le…
题意很明显是要用LCT来维护森林 难点在于如何处理函数之间的关系 我们可以根据题目给的提示关于泰勒展开的式子 将三种函数变成泰勒展开的形式 因为$x∈[0,1]$ 所以我们可以将三个函数在$x_0=0$处展开 $sin(ax+b)=sin(b)+\frac{acos(b)x}{1!}+\frac{-a^2sin(b)x^2}{2!}+\frac{-a^3cos(b)x^3}{3!}+⋯$ $e^{ax+b}=e^b+\frac{ae^bx}{1!}+\frac{a^2e^bx^2}{2!}+\f…
link 题目大意: 你需要维护一个树 每个点都有个sin(ax+b)或exp(ax+b)或ax+b 你需要维护一些操作:连边.删边.修改某个点的初等函数.询问某条树链上所有函数带入某个值后权值和或不连通 保证x在[0,1],带入后得到的值在[0,1] 允许精度误差在1e-7 题解: 由于sin函数和exp函数不是多项式函数,比较cd,并且题目要求我们求的值比较小,我们可以对函数在0.5处求泰勒展开,然后每个点就维护了一个多项式函数 多项式函数加减后还是多项式函数,就可以通过Link-Cut T…
参考:https://www.cnblogs.com/CQzhangyu/p/7500328.html --其实理解了泰勒展开之后就是水题呢可是我还是用了两天时间来搞懂啊 泰勒展开是到正无穷的,但是因为精度问题,所以一般展开十几项就可以(这里展开了17项).以下是公式: \[ e^x=\sum_{i=0}^{\infty}\frac{x^i}{i!} \] \[ sin(x)=\sum_{i=0}^{\infty}\frac{(-1)^ix^{2i+1}}{(2i+1)!} \] 然后用二项式定…
[BZOJ5020][THUWC2017]在美妙的数学王国中畅游(Link-Cut Tree,组合数学) 题解 Description 数字和数学规律主宰着这个世界. 机器的运转, 生命的消长, 宇宙的进程, 这些神秘而又美妙的过程无不可以用数学的语言展现出来. 这印证了一句古老的名言: "学好数理化,走遍天下都不怕." 学渣小R被大学的数学课程虐得生活不能自理,微积分的成绩曾是他在教室里上的课的最低分.然而他的某位陈姓室友却能轻松地在数学考试中得到满分.为了提升自己的数学课成绩,有一…
[BZOJ5020][THUWC 2017]在美妙的数学王国中畅游 Description 数字和数学规律主宰着这个世界. 机器的运转, 生命的消长, 宇宙的进程, 这些神秘而又美妙的过程无不可以用数学的语言展现出来. 这印证了一句古老的名言: “学好数理化,走遍天下都不怕.” 学渣小R被大学的数学课程虐得生活不能自理,微积分的成绩曾是他在教室里上的课的最低分.然而他的某位陈姓室友却能轻松地在数学考试中得到满分.为了提升自己的数学课成绩,有一天晚上(在他睡觉的时候),他来到了数学王国. 数学王国…
Description 数学王国中,每个人的智商可以用一个属于 [0,1]的实数表示.数学王国中有 n 个城市,编号从 0 到 n−1 ,这些城市由若干座魔法桥连接.每个城市的中心都有一个魔法球,每个魔法球中藏有一道数学题.每个人在做完这道数学题之后都会得到一个在 [0,1] 区间内的分数.一道题可以用一个从 [0,1] 映射到 [0,1]的函数 f(x) 表示.若一个人的智商为 x ,则他做完这道数学题之后会得到 f(x)分.函数 f有三种形式:     正弦函数 sin(ax+b) (a∈[…
目录 @description@ @solution@ @accepted code@ @details@ @description@ n 个点编号 0 到 n-1,每个点有一个从 [0,1] 映射到 [0,1] 的函数 f(x) 作为点权,它有以下几种形式: 正弦函数:sin(ax+b) (a∈[0,1],b∈[0,π],a+b∈[0,π]) 指数函数:e^(ax+b) (a∈[−1,1],b∈[−2,0],a+b∈[−2,0]) 一次函数:ax+b (a∈[−1,1],b∈[0,1],a+b…
我数学是真的菜!! 清华光用数学知识就把我吊起来打,我还是太菜了 题解 如果每座城市的 $f$ 都是 $3$,维护一下树的路径上的 $\sum a,\space \sum b$ 即可. 其实就是维护一次项和常数项.由于只有两项,所以很好维护. 这样维护的原理是多项式(这里是一次函数)可以合并,所以要求一条路径的答案,只要把 $x$ 代入这条路径上所有点合并后的多项式即可. 由于前三个操作需要动态树,套 $LCT$ 即可(我强行再学一遍 $LCT$……) 但 $sin(ax+b)$ 和 $e(ax…
数学王国里有n座城市,每座城市有三个参数\(f\),\(a\),\(b\),一个智商为\(x\)的人经过一座城市的获益\(f(x)\)是 若\(f=1\),则\(f(x)=\sin(ax+b)\): 若\(f=2\),则\(f(x)=e^{ax+b}\): 若\(f=3\),则\(f(x)=ax+b\): 会发生如下四种事件: 1.有两个城市之间新建了道路: 2.有两个城市之间的道路被摧毁了: 3.城市i的三个参数被修改了: 4.求智商为x的人从u走到v的获益总和. 保证任何时候图是一个森林.…
题面 _“数字和数学规律主宰着这个世界.”_ 在 @i207M 帮助下折腾了半天终于搞懂了导数和泰勒展开,引用某学长在考场上的感受:感觉整个人都泰勒展开了 显然是个奇奇怪怪的东西套上LCT,发现直接维护的话并不能快速链上求和.所以用友好的提示里的泰勒展开,对每个点的函数进行泰勒展开后就变成了维护多项式的和,大概展开十几项精度就够了(我展开了16项).题目告诉我们了这三个函数在[0,1]都能展开,那就在零点展开呗,这不是最方便的吗=.= 当然因为可能~~并没~~有人和制杖的我一样对导数一无所知~~…
bzoj5020 \[答案误差只要小于 10^{-7}\] 题解 Taylor展开式: \[若f(x)的n阶导数在[a, b]内连续,则f(x)在x_{0}\in[a, b]可表示为\] \[f(x)=\sum_{i=0}^{n} \frac{ f^{(n)}(x_{0})(x-x_{0})^{i} }{i!} + \Theta((x-x_{0})^{n})\] \[其中f^{(n)}表示函数f的n阶导数,\Theta((x-x_{0})^{n})为误差\] \[对于这道题,令x_{0}=0,求…