超大整數乘法
fft模板題.
把數字看成是多項式,x是10.然後用fft做多項式乘法,最後進製就好了.
注意:1.進製前要把每一位加0.5(或者更小),然後向下取整,應該是浮點數的計算誤差吧...
1 #include 2view codeusing
namespace
std;34
const
int maxn=140000;5
const
double pi=acos(-1.0);6
intlen;
7int
rev[maxn],ans[maxn];
8char
str[maxn];
9struct cp
12 cp operator + (const cp &x) const
13 cp operator - (const cp &x) const
14 cp operator * (const cp &x) const
15}a[maxn],b[maxn],a[maxn];
16void brc(int &len)28}
29void dft(cp *a,int n,int flag)42}
43}44if(flag==-1)for(int i=0;in;45}
46void readin(cp *a)
51int
main()
time limit: 10 sec memory limit: 259 mb
submit: 2567 solved: 1308
[submit][status][discuss]
給出兩個n位10進製整數x和y,你需要計算x*y。
第一行乙個正整數n。
第二行描述乙個位數為n的正整數x。
第三行描述乙個位數為n的正整數y。
輸出一行,即x*y的結果。13
412資料範圍:
n<=60000
BZOJ 2179 FFT快速傅利葉(FFT)
description 給出兩個 n 位 10進製整數 x 和 y,你需要計算x y input 第一行乙個正整數 n 第二行描述乙個位數為 n的正整數 x 第三行描述乙個位數為 n的正整數 y n 60000 output 輸出一行,即x y 的結果。sample input1 3 4sample...
BZOJ2179 FFT快速傅利葉 FFT
給出兩個n位10進製整數x和y,你需要計算x y。第一行乙個正整數n。第二行描述乙個位數為n的正整數x。第三行描述乙個位數為n的正整數y。輸出一行,即x y的結果。13 412資料範圍 n 60000 fft模板題,做的時候注意處理一下進製和前導零就好 1 include2 include3 inc...
BZOJ 2179 FFT快速傅利葉
description 給出兩個n位10進製整數x和y,你需要計算x y。題目分析 fft裸題用來快速計算高精度的乘法,從n 2變成了n。其實不會,隨便抄了乙個模板。以後再慢慢學。include using namespace std const double pi acos 1.0 int rev...