题目大意 有一个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. 然而LCT上似乎很难实现往一条链里代一个数进去求和,怎么办呢? 善良的出题人在下方给了提示:把奇怪的函数泰勒展开搞成多项式,就很好维护了. 注意到数都很小,精度问题不会太大(那你还被卡),可以直接在\(0\)处泰勒展开更为方便. 然后就做完啦~ 代码 要开O2才能过QwQ #include<bits/stdc++.h> namespace my_std{ using namespace std; #define pii…
如果只有第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;…
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5020 https://loj.ac/problem/2289 题解 这个 appear 和 disappear 操作显然是强行加上去用力啊增加代码长度的. 所以相当于就是什么东西套个 LCT 就行了. 所以考虑怎么快速求出一堆东西的分值和. \(sin, exp\),一次函数之间的加法似乎并没有什么优美的性质,所以我们考虑泰勒展开. \[ e^v = \sum_{i=0}^{\infty}…
题意 题意奇奇怪怪,这里就不写了. \(\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…
[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…
[BZOJ5020][THUWC 2017]在美妙的数学王国中畅游 Description 数字和数学规律主宰着这个世界. 机器的运转, 生命的消长, 宇宙的进程, 这些神秘而又美妙的过程无不可以用数学的语言展现出来. 这印证了一句古老的名言: “学好数理化,走遍天下都不怕.” 学渣小R被大学的数学课程虐得生活不能自理,微积分的成绩曾是他在教室里上的课的最低分.然而他的某位陈姓室友却能轻松地在数学考试中得到满分.为了提升自己的数学课成绩,有一天晚上(在他睡觉的时候),他来到了数学王国. 数学王国…
5020: [THUWC 2017]在美妙的数学王国中畅游 Time Limit: 80 Sec  Memory Limit: 512 MBSec  Special JudgeSubmit: 323  Solved: 136[Submit][Status][Discuss] Description 数字和数学规律主宰着这个世界.   机器的运转,   生命的消长,   宇宙的进程,   这些神秘而又美妙的过程无不可以用数学的语言展现出来.   这印证了一句古老的名言:   “学好数理化,走遍天下…
明摆着的LCT,问题在于如何维护答案.首先注意到给出的泰勒展开式,并且所给函数求导非常方便,肯定要用上这玩意.容易想到展开好多次达到精度要求后忽略余项.因为x∈[0,1]而精度又与|x-x0|有关,当然是维护x=0.5时的各种东西,粗略算下大概到第13项就可以了.具体要维护的东西当然是对于x的不同次数分别维护一个和.注意编号从0开始. #include<iostream> #include<cstdio> #include<cmath> #include<cstd…
分析 又有毒瘤出题人把数学题出在树上了. 根据泰勒展开,有: \[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.维护一下链上所有结点各次项系数和,查询时直接利用整条链的信息计算答案即可. 计算…