首页 > 其他分享 >闲话 22.12.19

闲话 22.12.19

时间:2022-12-19 20:44:29浏览次数:64  
标签:frac 19 闲话 poly pmod 22.12 text 2n equiv

闲话

今天闲话水点就水点吧
也习惯了不是吗

今天在随机歌 看到情绪的一首歌《无法停止的白情》
曲调好熟悉 好听!作词作曲编曲:春卷饭
彳亍 已经在循环了

今日 SAM!

一阶微分方程

看到了 duls 的《A problem collection of ODE and differential technique》
深有感触 指一早读才看懂一阶微分方程怎么个解法

具体地,给定 \(f(t)\),我们需要求出下式的解 \(x(t)\):

\[\frac{\text{d}}{\text dt} x = f(x) \]

类似多项式牛顿迭代的做法,我们考虑倍增求解。令 \(x_n\) 为 \(x(t)\) 在模 \(t^n\) 意义下的值。

初值为 \(x_0 = 1\),现在需要从 \(x_n\) 倍增出 \(x_{2n}\)。考虑将 \(f\) 在\(x_n\) 处展开,取前两项。(第三项及以后带系数 \((x_{2n} - x_n)^k\),最低次项都达到了 \(t^{2n}\))

\[\begin{aligned} \frac{\text{d}}{\text dt} x_{2n} & \equiv f(x_n) + f'(x_n)\left(x_{2n} - x_n\right) \pmod{t^{2n}} \\ & \equiv f(x_n) + f'(x_n)x_{2n} - f'(x_n)x_n \pmod{t^{2n}} \end{aligned}\]

考虑构造一个消元多项式

\[p(t) = \exp\left(\int - f'(x_n) \text dt \right) \]

\[p'(t) = - f'(x_n) p(t) \]

为什么这么叫呢?你看 \(\equiv\) 右边是不是有个 \(x_{2n}\) 项吗?我们两边乘 \(p\),再加上 \(p'x_{2n}\) 凑一下试试?

\[\begin{aligned} p\times \frac{\text{d}}{\text dt} x_{2n} & \equiv (f(x_n) - f'(x_n)x_n)p + f'(x_n)x_{2n}p \pmod{t^{2n}} \\ \frac{\text{d}}{\text dt} (x_{2n}p) & \equiv (f(x_n) - f'(x_n)x_n)p + f'(x_n)x_{2n}p + x_{2n}p' \pmod{t^{2n}} \\ \frac{\text{d}}{\text dt} (x_{2n}p) & \equiv (f(x_n) - f'(x_n)x_n)p + f'(x_n)x_{2n}p - f'(x_n)x_{2n}p' \pmod{t^{2n}} \\ \frac{\text{d}}{\text dt} (x_{2n}p) & \equiv (f(x_n) - f'(x_n)x_n)p \pmod{t^{2n}} \\ x_{2n}p & \equiv \int \left((f(x_n) - f'(x_n)x_n)p\right) \text d t + 1 \pmod{t^{2n}} \\ x_{2n} & \equiv \frac{1} p \left(\int \left((f(x_n) - f'(x_n)x_n)p\right) \text d t + 1 \right) \pmod{t^{2n}} \\ \end{aligned}\]

这样就可以做迭代了。

模板题

这题的 \(f(x) = A\times e^{x - 1} + B\)。需要注意的是,\(f'(x) = A \times e^{x - 1}\)。

时间复杂度是 \(T(n) = T(\frac n2) + O(n\log n) = O(n\log n)\) 的。就是常数有点大。

code
int n;
poly A, B, F;
poly f(poly x_n) {
	return A * (x_n - 1).exp() + B;
} 

poly f2(poly x_n) {
	return A * (x_n - 1).exp();
}

poly r(poly x_n) {
	return (- f2(x_n)).intg().exp();
}

signed main() {
	iot;
	cin >> n; A.redegree(n); B.redegree(n);
	rep(i,0,n) cin >> A[i]; rep(i,0,n) cin >> B[i];
	F.resize(1); F[0] = 1;
	for (int i = 2; i <= (n << 1); i <<= 1) {
		F.resize(i);
		F = r(F).inv() * ((r(F) * (f(F) - f2(F) * F)).intg() + 1);
		F.resize(i);
	} F.redegree(n);
	cout << F << '\n';
}

可以常数变易法解出通解来,常数更小点

code
int n;
poly A, B, A1, B1, expB1;

signed main() {
	iot;
	cin >> n;
	A.redegree(n); B.redegree(n);
	rep(i, 0, n) cin >> A[i]; rep(i, 0, n) cin >> B[i];
	A1 = A.intg().slice(n), B1 = B.intg().slice(n), expB1 = B1.exp();
	cout << (1 + B1 - (((A1 * B).slice(n - 1) * expB1).slice(n - 1).intg() - (A1 * expB1).slice(n) + 1).ln()) << '\n';
}

达成成就:\(14s \to 600ms\)。

标签:frac,19,闲话,poly,pmod,22.12,text,2n,equiv
From: https://www.cnblogs.com/joke3579/p/chitchat221219.html

相关文章

  • 12.19
    今日内容1.Q查询进阶操作2.ORM查询优化3.ORM事务操作4.ORM常用字段类型5.ORM常用字段参数6.Ajax7.Content-Type8.ajax携带文件数据1.Q查询进阶操作Q:可以将多个......
  • 第二次学习C语言--2022.12.19
    接下来是一串Helloworld的代码编写#include<stdio.h>intmain(void){printf("HelloWorld!");return0;} int表明main()函数返回一个整数,void表明main()不带任......
  • 1971. 寻找图中是否存在路径
    1971.寻找图中是否存在路径题解:并查集并查集模板题判断两个点是否在同一个连通块classSolution{int[]p=newint[200010];intfind(intx){......
  • 12月19日内容总结——
    目录一、Q查询进阶操作二、ORM查询优化三、ORM事务操作四、ORM常用字段类型五、ORM常用字段参数六、Ajax七、Content-Type八、ajax携带文件数据九、作业一、Q查询进阶操......
  • 洛谷 P6580 [Ynoi 2019] 美好的每一天~ 不连续的存在 题解
    既然是YNOI那肯定是要分块的。先考虑树是一条链的情况,可以直接回滚莫队,对n个节点组成的序列分块。在回滚莫队的过程中,当前维护的区间一共会扩展\(O(n\sqrtn)\)次,每次都是......
  • [LeetCode] 1971. Find if Path Exists in Graph
    Thereisa bi-directional graphwith n vertices,whereeachvertexislabeledfrom 0 to n-1 (inclusive).Theedgesinthegrapharerepresentedasa......
  • 【221219-4】已知:三角形ABC中,角B=45度,角C=22.5度,ABC的面积=8。求:三角形ABC的外接圆的
    ......
  • day6-2022.12.17-flex布局初识(三)
    一、作业完成如下设计图的布局   二、作业需掌握知识点1、理解模型盒子1.1<imgsrc="../assets/boxModel.png"alt="" 解释:img标签用来引入图......
  • 19、electron log4js写日志
    环境:"devDependencies":{"electron":"^22.0.0"},"dependencies":{"@electron/remote":"^2.0.9","log4js":"^6.7.1"}1、安装:npminst......
  • 闲话 22.12.18
    闲话?本来想颓一整天的不知不觉就到现在了呢不是很理解jijidawang数个月前莫比乌斯反演就爆踩我了%%%%最近闲话的阅读量忽高忽低欸不懂不懂溜了溜了\(\text{Min_25......