p1919 A*B Problem升级版】的更多相关文章

妈妈我终于会\(A*B\ problem\)啦~~ 题目大意: 给你两个正整数 \(a,b\),求\(a*b\) 其中\(a,b\le 10^{1000000}\) 我们只要把多项式\(A(x)=\sum\limits_{i=0}^{n-1}a_i*x_i\)的\(x\)看作\(10\)就好啦- 注意输入顺序和多项式顺序相反,记得反过来 跑\(fft\),再高精乘求出每一位的系数 #include<bits/stdc++.h> using namespace std; namespace re…
传送门 题目 给出两个n位10进制整数x和y,你需要计算x*y. 输入格式: 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位数为n的正整数y. 输出格式: 输出一行,即x*y的结果.(注意判断前导0) 数据范围: n<=60000 分析 将数字倒序读入,即个位数是1次方系数,十位数是2次方系数,以此类推.然后进行朴素的FFT,最后答案同样也倒序输出即可,注意输出地数应截止至2次方系数,因为1次方乘1次方得到的是2次方. 代码 #include<iostream>…
洛谷P1919 [模板]A*B Problem升级版(FFT快速傅里叶) 刚学了FFT,我们来刷一道模板题. 题目描述 给定两个长度为 n 的两个十进制数,求它们的乘积. n<=100000 如果用 n^2 暴力,肯定会 TLE. 我们把这两个数看成一个多项式. f(x)=a0+a1*101+a2*102+a3*103+ ...... +an*10n 然后就可以愉快的FFT求解了!! #include<iostream> #include<cmath> #include<…
luoguP1919 A*B Problem升级版 链接 luogu 思路 ntt模板题 代码 #include <bits/stdc++.h> #define ll long long using namespace std; const int N=3e5+7,mod=998244353; int n,a[N],b[N],limit=1,l,r[N]; ll q_pow(ll a,int b) { ll ans=1; while(b) { if(b&1) ans=ans*a%mod…
这其实就是一道裸的FFT 核心思想:把两个数拆成两个多项式用FFT相乘,再反序输出 py解法如下: input() print(int(input())*int(input())) 皮一下hihi fft解法: #include<bits/stdc++.h> using namespace std; ); ],]; ]; complex<],b[]; void FFT(complex<double> *a,int f){ ;i<n;i++)if(i<r[i])sw…
题目来源 吐槽下P3803都是紫题... 真心好写,本想一遍过的...但是 我真是太菜了... #include<bits/stdc++.h> using namespace std; ; const double pi=acos(-1.0); char x[MAXN],y[MAXN]; int sum,lena,lenb,l; int TT[MAXN],c[MAXN]; int r; int n,m; struct Node{ //int x; double x; double y; Nod…
模板 嗯 做多项式乘法,进位 没了 #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> #define pi acos(-1.0) inline int read() { int x = 0,f = 1; char c = getchar(); while(c < '0' || c > '9')c = getchar(); while(c <= '9'…
题目描述 给出两个n位10进制整数x和y,你需要计算x*y. 输入输出格式 输入格式: 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位数为n的正整数y. 输出格式: 输出一行,即x*y的结果.(注意判断前导0) 输入输出样例 输入样例#1: 复制 1 3 4 输出样例#1: 复制 12 说明 数据范围: n<=60000 来源:bzoj2179 #include<iostream> #include<cstdio> #include<cstr…
传送门 话说FFT该不会真的只能用来做这种板子吧…… 我们把两个数字的每一位都看作多项式的系数 然后这就是一个多项式乘法 上FFT就好了 然后去掉前导零 (然而连FFT的板子都背不来orz,而且空间又开小了……) //minamoto #include<iostream> #include<cstdio> #include<cmath> using namespace std; <<],z[];,Z; inline ,C+,stdout),C=-;} inl…
题目描述 给出两个n位10进制整数x和y,你需要计算x*y. 输入输出格式 输入格式: 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位数为n的正整数y. 输出格式: 输出一行,即x*y的结果.(注意判断前导0) 输入输出样例 输入样例#1: 复制 1 3 4 输出样例#1: 复制 12 说明 数据范围: n<=60000 来源:bzoj2179 本题数据为洛谷自造数据,使用CYaRon耗时5分钟完成数据制作. emmmm感觉学了FFT没什么乱用啊,, 也就来水一水这种…