COJ0702 数学(三)

数学(三)
难度级别:D; 运行时间限制:1800ms; 运行空间限制:262144KB; 代码长度限制:2000000B

试题描述

给出两个正整数a,b,求a*b。

输入

输入共两行,每行是一个正整数。

输出

输出共一行,为他们的乘积。

输入示例

2
2

输出示例

4

其他说明

0<a,b<=10^200000

经典问题,用FFT加速大整数乘法。

#include<cstdio>
#include<cctype>
#include<queue>
#include<cmath>
#include<cstring>
#include<algorithm>
#define rep(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
#define ren for(int i=first[x];i!=-1;i=next[i])
using namespace std;
inline int read() {
    int x=0,f=1;char c=getchar();
    for(;!isdigit(c);c=getchar()) if(c==‘-‘) f=-1;
    for(;isdigit(c);c=getchar()) x=x*10+c-‘0‘;
    return x*f;
}
const int maxn=800010;
const double PI=acos(-1.0);
struct FFT {
    struct cox {
        double r,i;
        cox(double _r=0.0,double _i=0.0) {r=_r;i=_i;}
        cox operator + (const cox& b) {return cox(r+b.r,i+b.i);}
        cox operator - (const cox& b) {return cox(r-b.r,i-b.i);}
        cox operator * (const cox& b) {return cox(r*b.r-i*b.i,r*b.i+i*b.r);}
    }f[maxn];
    int len;
    void init(char* A,int L,int Len) {
        len=L;rep(i,0,Len-1) f[i]=cox(A[Len-i-1]-‘0‘,0);
    }
    void fft(int tp) {
        int j=len>>1;
        rep(i,1,len-2) {
            if(i<j) swap(f[i],f[j]);int k=len>>1;
            while(j>=k) j-=k,k>>=1;j+=k;
        }
        double lm=-2*tp*PI;
        for(int i=2;i<=len;i<<=1) {
            cox wn(cos(lm/i),sin(lm/i));
            for(int j=0;j<len;j+=i) {
                cox w(1,0);
                for(int k=j;k<j+(i>>1);k++) {
                    cox u=f[k],v=w*f[k+(i>>1)];
                    f[k]=u+v;f[k+(i>>1)]=u-v;w=w*wn;
                }
            }
        }
        if(tp<0) rep(i,0,len-1) f[i].r/=len;
    }
}a,b;
void mul(char* A,char* B,int L1,int L2,int& L,int* ans) {
    L=1;while(L<L1<<1||L<L2<<1) L<<=1;
    a.init(A,L,L1);b.init(B,L,L2);a.fft(1);b.fft(1);
    rep(i,0,L-1) a.f[i]=a.f[i]*b.f[i];
    a.fft(-1);rep(i,0,L-1) ans[i]=int(a.f[i].r+0.5);
}
char A[maxn],B[maxn];
int ans[maxn];
int main() {
    scanf("%s%s",A,B);
    int L1=strlen(A),L2=strlen(B),L;
    mul(A,B,L1,L2,L,ans);
    rep(i,0,L-2) {
        ans[i+1]+=ans[i]/10;
        ans[i]%=10;
    }
    while(L>1&&!ans[L-1]) L--;
    dwn(i,L-1,0) putchar(ans[i]+‘0‘);
    return 0;
}

时间: 2024-10-07 05:28:59

COJ0702 数学(三)的相关文章

2016考研数学三复习计划

一.学习阶梯划分: 一阶基础 全面复习(3月-6月) 二阶强化 熟悉题型(7月-10月) 三阶模考 查缺补漏(11月-12月15日) 四阶点睛 保持状态(12月16日-考试前) 二.参考书目 : 必备参考资料: 数学考试大纲 <高等数学>同济版:讲解比较细致,例题难度适中,涉及内容广泛,是现在高校中采用比较广泛的教材,配套的辅导教材也很多. <线性代数>同济版:轻薄短小,简明易懂,适合基础不好的学生.<线性代数>清华版:适合基础比较的学生 <概率论与数理统计初步&

【分享】近4000份数学学习资源免费分享给大家

一直以来喜欢收集数学类的教程资源,于是费了好大劲从万千合集站上扒拉了下来,总结归类了一下,一共有将近4000本电子书.经测试,均可免费下载,可能会弹出小广告,可不必理会之.[仅供学术学习和交流,请无用于商业用途.]另外,如有可能,还请尽量支持正版纸质书.   数学史(54)     数学史.rar 55.6 MB   数学的起源与发展.rar 4.3 MB   费马大定理—一个困惑了世间智者358年的谜.pdf 9.5 MB   通俗数学名著译丛14-无穷之旅:关于无穷大的文化史.pdf 14.

2019考研数学汤家凤张宇李永乐复习资料

2019考研复习资料 张宇 2019张宇概率论与数理统计9讲.pdf 2019张宇线性代数9讲.pdf 2019张宇高等数学18讲.pdf 张宇带你学-概率与数理统计-浙大四版.pdf 张宇带你学-线性代数-同济六版.pdf 张宇带你学-高等数学-同济七版(上).pdf 汤家凤 2019考研数学 复习大全 数学二 汤家凤.pdf 2019考研数学接力题典1800 数学一 解答册.pdf 2019考研数学接力题典1800 数学一 题目册.pdf 2019考研数学接力题典1800 数学二 解答册 汤

Mysql学习笔记(二)对表结构的增删改查

有将近一个星期都没有更新mysql了.相反linux的东西倒是学习不少.可能我个人情感上对linux更感兴趣一点.但mysql我也不烦,只是一旦将精力投入到了一样事情上去,就很难将精力分散去搞其他的东西. 最近我也调整了学习计划和健身计划.以前是每天晚上下班后,运动半个小时到一个小时,现在是晚上早睡,基本上如果没有特别的安排,10:30是肯定要入睡的.从下班到家,然后抽出二到三个小时学习一下.至于健身,要放在了早上,昨天试验了一下,早上还是起的来的.5:30起床,跑步半个小时,甚至还有时间去早市

复旦考研信息整理

复旦大学考研网:http://www.kaofudan.com/kaoyanjingyan/ 复旦大学考研资料:http://yz.kaoyan.com/fudan/ziliao/ 复旦大学考研真题:http://download.kaoyan.com/list-12-t-1 复旦大学考研网:http://www.kaofudan.com/kaoyanziliao/ 计算机科学与技术专业:http://www.kaofudan.com/kaoyanziliao/jisuanjikexuejish

infer.net 入门2 用一个侦探故事来讲解,通俗易懂

The results look OK, but how do you know that you aren’t missing something. Would a more sophisticated model with more variables work even better? If you add enough variables to a model, you can fit almost anything. However, you generally reach a poi

2017年软件所复试题目863和经验(专硕C组)

本帖子原发王道,但是目前正在审核,于是先发在这儿了,版权所有,转载请注明出处. 2017年软件所复试题目863和经验(专硕C组)http://www.cskaoyan.com/forum.php?mod=viewthread&tid=642975&fromuid=347433(出处: 王道论坛,专注于计算机考研的点点滴滴!) 首先分享下复试的题目,如果有因为内容印象相关的权益,请联系删除[email protected].这个如题目介绍,专硕C组,AB组的听同去的人说是不同的,B组今年是有

SurfaceView部分译

SurfaceView 一.简述 The SurfaceView is a special subclass of View that offers a dedicated drawing surface within the View hierarchy. The aim is to offer this drawing surface to an application's secondary thread, so that the application isn't required to

融经济学考研科目及大学排名与当前经济金融形势分析

一.金融经济学考研教材科目 思想政治理论.英语一.数学三 二.金融经济学专业考研大学排名 清华大学.北京大学.复旦大学.中国人民大学.中央财经大学.上海财经大学.对外经济贸易大学.东北财经大学.四川财经大学.中山大学.中国海洋大学.西南财经大学.同济大学等. 三.当前经济金融形势分析 金融经济学考研教材科目_专业大学排名_当前经济金融形势分析 经济金融运行的主要特点 宏观经济呈现平稳较快发展态势.在2004年对钢铁.水泥.电解铝等过热发展行业进行重点调控的基础上,2005年上半年国家针对房地产投