CODEVS3123 a*b problem plus (FFT)
type xh=record
x,y:double;
end;
arr=array[..] of xh;
var n,m:longint;
s1,s2:ansistring;
a,b,g,w:arr;
ch:char;
operator -(a,b:xh) c:xh;
begin
c.x:=a.x-b.x;
c.y:=a.y-b.y;
end;
operator +(a,b:xh) c:xh;
begin
c.x:=a.x+b.x;
c.y:=a.y+b.y;
end;
operator *(a,b:xh) c:xh;
begin
c.x:=a.x*b.x-a.y*b.y;
c.y:=a.x*b.y+a.y*b.x;
end;
procedure dft(var a:arr;s,t:longint);//a待处理数组 s初始位置 <<t长度
var i,p:longint;
cnt:xh;
begin
if n>>t= then exit;
dft(a,s,t+); dft(a,s+<<t,t+);
for i:= to n>>t>>- do
begin
p:=i<<t<<+s;
cnt:=w[i<<t]*a[p+<<t];
g[i]:=a[p]+cnt;
g[i+n>>t>>]:=a[p]-cnt;
end;
for i:= to n>>t- do a[s+i<<t]:=g[i];
end;
procedure clr(var a:arr);
begin
fillchar(a,sizeof(a),);
end;
procedure FFT;
var i,len:longint;
lx:longint;
begin
n:=;
while n<m<< do n:=n<<;
for i:= to n- do w[i].x:=cos(pi**i/n);
for i:= to n- do w[i].y:=sin(pi**i/n);
dft(a,,); dft(b,,);
for i:= to n- do a[i]:=a[i]*b[i];
for i:= to n- do w[i].y:=-w[i].y; //!!!!
dft(a,,);
for i:=m<<- downto do a[i].x:=a[i].x/n;//!!!!
for i:= to m<<- do
begin
lx:=round(a[i].x);
a[i+].x:=a[i+].x+lx div ;
a[i].x:=lx mod ;
end;
len:=m<<-;
while a[len].x<1e-12 do dec(len);
for i:=len downto do write(a[i].x::);
writeln;
end;
procedure main;
var i:longint;
begin
read(ch);
while ord(ch)>= do begin s1:=s1+ch; read(ch); end;
readln(s2);
clr(a); clr(b);
for i:=length(s1) downto do a[length(s1)-i].x:=ord(s1[i])-;
for i:=length(s2) downto do b[length(s2)-i].x:=ord(s2[i])-;
if length(s1)>length(s2) then m:=length(s1) else m:=length(s2);
FFT;
end;
begin
main;
end.
CODEVS3123 a*b problem plus (FFT)的更多相关文章
- hdu 1402 A * B Problem Plus FFT
/* hdu 1402 A * B Problem Plus FFT 这是我的第二道FFT的题 第一题是完全照着别人的代码敲出来的,也不明白是什么意思 这个代码是在前一题的基础上改的 做完这个题,我才 ...
- 【CF954I】Yet Another String Matching Problem(FFT)
[CF954I]Yet Another String Matching Problem(FFT) 题面 给定两个字符串\(S,T\) 求\(S\)所有长度为\(|T|\)的子串与\(T\)的距离 两个 ...
- A * B Problem Plus(fft)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1402 hdu_1402:A * B Problem Plus Time Limit: 2000/100 ...
- HDU 1402 A * B Problem Plus (FFT求高精度乘法)
A * B Problem Plus Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- HDU1402 A * B Problem Plus FFT
分析:网上别家的代码都分析的很好,我只是给我自己贴个代码,我是kuangbin的搬运工 一点想法:其实FFT就是快速求卷积罢了,当小数据的时候我们完全可以用母函数来做,比如那种硬币问题 FFT只是用来 ...
- HDU-1402 A * B Problem Plus FFT(快速傅立叶变化)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1402 一般的的大数乘法都是直接模拟乘法演算过程,复杂度O(n^2),对于这题来说会超时.乘法的过程基本 ...
- HDU 1402 A * B Problem Plus (FFT模板题)
FFT模板题,求A*B. 用次FFT模板需要注意的是,N应为2的幂次,不然二进制平摊反转置换会出现死循环. 取出结果值时注意精度,要加上eps才能A. #include <cstdio> ...
- HDU - 1402 A * B Problem Plus FFT裸题
http://acm.hdu.edu.cn/showproblem.php?pid=1402 题意: 求$a*b$ 但是$a$和$b$的范围可以达到 $1e50000$ 题解: 显然...用字符串模拟 ...
- 洛谷.1919.[模板]A*B Problem升级版(FFT)
题目链接:洛谷.BZOJ2179 //将乘数拆成 a0*10^n + a1*10^(n-1) + ... + a_n-1的形式 //可以发现多项式乘法就模拟了竖式乘法 所以用FFT即可 注意处理进位 ...
随机推荐
- php -l 检查文件是否语法错误
有时候在进行网页开发的时候,后台文件的语法错误比较难检查出来,这时候使用php -l filename可对文件的语法进行检查.
- JVM优化之调整大内存分页(LargePage)
转自:http://cjjwzs.iteye.com/blog/1059381 本文将从内存分页的原理,如何调整分页大小两节内容,向你阐述LargePage对JVM的性能有何提升作用,并在文末点明了大 ...
- formvalidator4.1.3 使用过程中一些问题的解决
在使用formvalidator4.1.3 插件时 发现 正常情况调用时没有问题的,但是我们的项目中需要把css .js 之类的静态资源用单独的域名加载. 那么问题就来了在 该插件中 有一段这样的 ...
- Wcf Client 异常和关闭的通用处理方法
在项目中采用wcf通讯,客户端很多地方调用服务,需要统一的处理超时和通讯异常以及关闭连接. 1.调用尝试和异常捕获 首先,项目中添加一个通用类ServiceDelegate.cs public del ...
- Threading.Tasks.Task多线程 静态全局变量(字典) --只为了记录
--------------------------------------------------------------后台代码---------------------------------- ...
- 哈希(Hask)
编辑 Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射 ...
- POJ 1328 Radar Installation 贪心 难度:1
http://poj.org/problem?id=1328 思路: 1.肯定y大于d的情况下答案为-1,其他时候必定有非负整数解 2.x,y同时考虑是较为麻烦的,想办法消掉y,用d^2-y^2获得圆 ...
- 二模 (9)day1
第一题: 题目大意: 给出一个n位01串,要么不动它,要么把它删掉一个字符,要么插入一个字符(0或1),要么把一个1变成0,.使得有1的位置号的总和是n+1的倍数,或者是0. 解题过程: 1.直接枚举 ...
- jsp中JavaBean的用法
UserRegisterBean.java:这是JavaBean package JavaBean; public class UserRegisterBean { private String us ...
- 使用ASP.Net WebAPI构建REST服务(五)——客户端
WebAPI是标准的Http协议,支持Http协议的客户端(如浏览器)都可以访问.但是,有的时候我们如果想在自己的程序中使用WebAPI时,此时就要实现自己的客户端了.我之前介绍过在.Net 4.5中 ...