HDU1402(fft)
A * B Problem Plus
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 22082 Accepted Submission(s): 5511
Problem Description
Input
Note: the length of each integer will not exceed 50000.
Output
Sample Input
2
1000
2
Sample Output
2000
Author
//2017-09-07
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <complex>
#include <cmath>
#define Complex complex<double> using namespace std; const double PI = acos(-1.0);
const int N = ; void fft(Complex y[], int n, int op){
for(int i = , j = n/; i < n-; i++){
if(i<j)swap(y[i], y[j]);
int k = n/;
while(j >= k){
j -= k;
k /= ;
}
if(j<k)j += k;
}
for(int h = ; h <= n; h <<= ){
Complex wn(cos(-op**PI/h), sin(-op**PI/h));
for(int j = ; j < n; j += h){
Complex w(, );
for(int k = j; k < j+h/; k++){
Complex u = y[k];
Complex t = w*y[k+h/];
y[k] = u+t;
y[k+h/] = u-t;
w = w*wn;
}
}
}
} char a[N], b[N];
Complex A[N<<], B[N<<];
int ans[N<<];
void poly_muilt(){
int n = , len1 = strlen(a), len2 = strlen(b);
while(n<len1* || n<len2*)n<<=;
for(int i = ; i < len1; i++)A[i] = a[len1-i-]-'';
for(int i = len1; i < n; i++)A[i] = ;
for(int i = ; i < len2; i++)B[i] = b[len2-i-]-'';
for(int i = len2; i < n; i++)B[i] = ;
fft(A, n, );
fft(B, n, );
for(int i = ; i < n; i++)
A[i] *= B[i];
fft(A, n, -);
for(int i = ; i < n; i++)
ans[i] = (int)(A[i].real()/n+0.5);
for(int i = ; i < n; i++){
ans[i+] += ans[i]/;
ans[i] %= ;
}
n = len1+len2-;
while(ans[n] <= && n > )n--;
for(int i = n; i >= ; i--)
printf("%c", ans[i]+'');
printf("\n");
} int main()
{
while(scanf("%s%s", a, b) != EOF){
poly_muilt();
} return ;
}
HDU1402(fft)的更多相关文章
- 快速傅里叶(FFT)的快速深度思考
关于按时间抽取快速傅里叶(FFT)的快速理论深度思考 对于FFT基本理论参考维基百科或百度百科. 首先谈谈FFT的快速何来?大家都知道FFT是对DFT的改进变换而来,那么它究竟怎样改进,它改进的思想在 ...
- 【BZOJ3527】力(FFT)
[BZOJ3527]力(FFT) 题面 Description 给出n个数qi,给出Fj的定义如下: \[Fj=\sum_{i<j}\frac{q_i q_j}{(i-j)^2 }-\sum_{ ...
- 【BZOJ4827】【HNOI2017】礼物(FFT)
[BZOJ4827][HNOI2017]礼物(FFT) 题面 Description 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手 环,一个留给自己,一 个送给她.每 ...
- FFT/NTT总结+洛谷P3803 【模板】多项式乘法(FFT)(FFT/NTT)
前言 众所周知,这两个东西都是用来算多项式乘法的. 对于这种常人思维难以理解的东西,就少些理解,多背板子吧! 因此只总结一下思路和代码,什么概念和推式子就靠巨佬们吧 推荐自为风月马前卒巨佬的概念和定理 ...
- 【BZOJ4503】两个串(FFT)
[BZOJ4503]两个串(FFT) 题面 给定串\(S\),以及带通配符的串\(T\),询问\(T\)在\(S\)中出现了几次.并且输出对应的位置. \(|S|,|T|<=10^5\),字符集 ...
- 【BZOJ4259】残缺的字符串(FFT)
[BZOJ4259]残缺的字符串(FFT) 题面 给定两个字符串\(|S|,|T|\),两个字符串中都带有通配符. 回答\(T\)在\(S\)中出现的次数. \(|T|,|S|<=300000\ ...
- 【51Nod1258】序列求和V4(FFT)
[51Nod1258]序列求和V4(FFT) 题面 51Nod 多组数据,求: \[Ans=\sum_{i=1}^ni^k,n\le 10^{18},k\le50000\] 题解 预处理伯努利数,时间 ...
- 【CF528D】Fuzzy Search(FFT)
[CF528D]Fuzzy Search(FFT) 题面 给定两个只含有\(A,T,G,C\)的\(DNA\)序列 定义一个字符\(c\)可以被匹配为:它对齐的字符,在距离\(K\)以内,存在一个字符 ...
- 【CF954I】Yet Another String Matching Problem(FFT)
[CF954I]Yet Another String Matching Problem(FFT) 题面 给定两个字符串\(S,T\) 求\(S\)所有长度为\(|T|\)的子串与\(T\)的距离 两个 ...
随机推荐
- Nmap命令的常用实例
一.Nmap简介 nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端.确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting).它是网络管 ...
- PICE(3):CassandraStreaming - gRPC-CQL Service
在上一篇博文里我们介绍了通过gRPC实现JDBC数据库的streaming,这篇我们介绍关于cassandra的streaming实现方式.如果我们需要从一个未部署cassandra的节点或终端上读取 ...
- 弹出AlertDialog的时候报You need to use a Theme.AppCompat theme (or descendant) with this activity错误
今天遇到一个bug,用百度地图的时候,我对上面的标注设置了点击监听,设置的相应的反应是弹出一个AlertDialog 记录一解决bug的历程 但是Dialog却没有弹出来,一看AS下面,报了这错,起初 ...
- (转)Python 实现双向链表(图解)
原文:https://blog.csdn.net/qq490691606/article/details/49948263 Python 实现双向链表(图解)双向链表双向链表也叫双链表,是链表的一种, ...
- syslog之二:syslog协议及rsyslog服务全解析
目录: <syslog之一:Linux syslog日志系统详解> <syslog之二:syslog协议及rsyslog服务全解析> <syslog之三:建立Window ...
- java信任所有证书
package com.eeepay.cashOut.util; import java.io.BufferedReader; import java.io.DataOutputStream; imp ...
- tensorflow进阶篇-5(反向传播1)
这里将讲解tensorflow是如何通过计算图来更新变量和最小化损失函数来反向传播误差的:这步将通过声明优化函数来实现.一旦声明好优化函数,tensorflow将通过它在所有的计算图中解决反向传播的项 ...
- CentOS 7.5 安装与配置 Percona Server 5.7
个人比较喜欢 MYSQL 的轻量,今天花了一点时间把阿里云上的 MYSQL5.7 换成了 Percona-Server .Percona 是一个开源的 MySQL 衍生版,TokuDB 的数据库引擎使 ...
- donet core 应用 部署到CentOS
创建应用 新建一个Asp.net core Web API 应用 在program里指定监听端口 public static IWebHost BuildWebHost(string[] args) ...
- 分布式锁的两种实现方式(基于redis和基于zookeeper)
先来说说什么是分布式锁,简单来说,分布式锁就是在分布式并发场景中,能够实现多节点的代码同步的一种机制.从实现角度来看,主要有两种方式:基于redis的方式和基于zookeeper的方式,下面分别简单介 ...