hdu 1402 A * B Problem Plus(快速傅里叶变换模板)

DIY等离子环:从Class-E电路到七彩辉光,手把手教你打造炫酷科学玩具 本文手把手教你DIY一个炫酷的等离子环科学玩具。从解析等离子体辉光放电原理入手,详细介绍了核心的Class-E自激振荡电路设计、关键元件选型与参数计算,并提供了从物料准备、电路搭建、腔体密封到上电调试的全流程指南。通过调制电路或填充不同气体,还能实现七彩变换与交互效果,是学习高频电路与电磁场知识的绝佳实践项目。 阅读详情

快速傅里叶变换在这里的主要用处就是可以快速求出两个多项式的乘积,可以把两个大数转换成a1 + a2*x + a3*x^2......的形式,利用FFT快速求值。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int maxn = 200000 + 7;
const double PI = acos(-1.0);
struct complex {
    double a, b;
    complex(double aa = 0, double bb = 0) : a(aa), b(bb) { }
    complex operator+(const complex &e) {
        return complex(a + e.a, b + e.b);
    }
    complex operator-(const complex &e) {
        return complex(a - e.a, b - e.b);
    }
    complex operator*(const complex &e) {
        return complex(a * e.a - b * e.b, a * e.b + b * e.a);
    }
};

void change(complex y[], int len) {
    for(int i = 1, j = len / 2; i < len - 1; ++i) {
        if(i < j) swap(y[i], y[j]);
        int k = len / 2;
        while(j >= k) {
            j -= k;
            k /= 2;
        }
        if(j < k) j += k;
    }
    return ;
}
//FFT快速傅里叶变换的模板,用以将多项式系数转换成单位根,这样得到的两个序列逐个相乘到得就是系数
void FFT(complex y[], int len, int on) {
    change(y, len);
    for(int h = 2; h <= len; h <<= 1) {
        complex wn(cos(-on * 2 * PI / h), sin(-on * 2 * PI / h));
        for(int j = 0; j < len; j += h) {
            complex w(1, 0);
            for(int k = j; k < j + h / 2; ++k) {
                complex u = y[k];
                complex t = w * y[k+h/2];
                y[k] = u + t;
                y[k+h/2] = u - t;
                w = w * wn;
            }
        }
    }
    if(on == -1) {
        for(int i = 0; i < len; ++i)
            y[i].a /= len;
    }
}

int num[maxn];
complex x[maxn], y[maxn];
char s1[maxn/4], s2[maxn/4];

int main() {
    while(scanf("%s%s", s1, s2) != EOF) {
        int len1 = strlen(s1), len2 = strlen(s2);
        int len = 1;
        //这里求最接近且大于n+m-1的2^k,方便二叉树形式的运用吧
        while(len < len1 + len2) len <<= 1;
        for(int i = 0; i < len1; ++i)
            x[i] = complex(s1[len1-i-1] - '0', 0);
        for(int i = len1; i < len; ++i)
            x[i] = complex(0, 0);

        for(int i = 0; i < len2; ++i)
            y[i] = complex(s2[len2-i-1] - '0', 0);
        for(int i = len2; i < len; ++i)
            y[i] = complex(0, 0);

        FFT(x, len, 1);//FFT转换成单位根形式
        FFT(y, len, 1);

        for(int i = 0; i < len; ++i)
            x[i] = x[i] * y[i];//卷积
        FFT(x, len, -1);//结果转换回来

        int temp = 0;
        for(int i = 0; i < len; ++i) {
            temp = temp + (int)(x[i].a + 0.5);
            num[i] = temp % 10;
            temp /= 10;
        }
        while(temp) {
            num[len++] = temp % 10;
            temp /= 10;
        }
        int i = len - 1;
        while(num[i] == 0 && i > 0) i--;
        for(; i >= 0; --i)
            printf("%d", num[i]);
        printf("\n");
    }
    return 0;
}


PCB设计必看:铜皮厚度与载流能力对照表(附Excel计算工具) 本文深入解析了PCB设计中铜皮厚度与载流能力的核心关系,提供了基于IPC-2152标准的动态计算逻辑与实用Excel工具。文章不仅分享了载流对照表,更重点剖析了影响载流能力的关键因素(如铜厚、线宽、温升、布线层),并给出了高电流设计的实战技巧与测试验证方法,帮助工程师规避常见陷阱,实现从理论到实践的闭环设计。 阅读详情

相关推荐

安卓ai自动化脚本 Yyds.Auto实现 示例 纯ai图像识别自动点击脚本

纯ai识别实现自动化脚本

专注安卓前沿科技 4779

HDU1402 A * B Problem Plus[FFT]

B - A * B Problem Plus  HDU - 1402   题意: 计算A*B(A,B均不超过5e4位)。 题解: 计算A*B 可以把AB的各项化成多项式来相乘  把这两个多项式相乘起来就能得到A*B的结果了。 用FFT可以快速的求出两多项式相乘的结果,然后就可以得到每一位的的结果。 求得A*B的结果之后,做进

ControlBear的博客 508

从专利库到Zemax:一个6mm定焦镜头从零到交付的完整设计流程(含CodeV转换技巧)

本文详细介绍了6mm定焦镜头从专利库检索到最终交付的全流程设计,重点解析了CodeV与Zemax工具链的无缝衔接技巧。通过实际案例展示规格定义、专利筛选、结构适配、非球面优化等关键步骤,帮助光学设计工程师提升设计效率和制造良率。特别包含CodeV转换Zemax的实用技巧,适用于机器视觉和安防镜头开发。

weixin_42561040的博客 160

【HDU - 1402】A * B Problem Plus (FFT)

Calculate A * B. Input Each line will contain two integers A and B. Process to end of file. Note: the length of each integer will not exceed 50000. Output For each case, output A * B in one li...

Coldfresh的博客 325

S32K144(14)ADC

1、简介 开发板S32K144+S32DS+JLINK,裸机版的程序编写 S32K14x包含两个12位ADC模块,ADC0和ADC1 应用程序可能需要ADC的连续采样(4K采样/秒),这可能对CPU有相当大的负载。虽然使用可编程延迟块(PDB)来触发ADC可能会减少一些CPU负载,但当ADC以非常高的速率采样或PDB被绕过时,ADC支持DMA请求功能以获得更高的性能。ADC可以在转换完成时触发DMA(通过DMA请求)。TRGMUX会根据不同的应用需求,使用软件为用户提供更灵活的DMA触发方案,例如,可

朗朗上口就行啦的博客 1万+

hMailServer安装配置

hMailServer安装配置 使用宝塔面板上的宝塔邮件服务器2.1版本,进行安装hMailServer。 宝塔在安装hMailServer是有做了一些配置,如果是手工安装需要注意一下配置点: 1、\hMailServer\Bin 目录下增加mysql连接文件libmysql.dll,要去下载32位的。 libmysql.dll下载 链接:https://pan.baidu.com/s/1YGJXzjowlJ9n_MiqB4xiqw 提取码:wz90 2、 需要提前安装mysql,并创建hM.

王者的博客 5863

hdu 1402 A * B Problem Plus(FFT-大整数乘法)

Problem Description Calculate A * B.   Input Each line will contain two integers A and B. Process to end of file. Note: the length of each integer will not exceed 50000.

SSimpLe_Y的博客 865

【GameFramework框架】一、框架介绍

这是GameFramework框架教程的第一篇,但是博主不准备直接就讲GameFramework框架。【GameFramework框架】二、GameFramework框架介绍了。框架(Framework)通常被理解为一种基础要素的集合,它们用于承载系统的必要功能。约束性:框架定义了解决特定问题的边界,并将相关的软件组件约束在这个范围内,以保持框架的内聚性和解决问题的专注性。支撑性:框架本身不直接解决问题,而是提供一个基础的支撑结构,使得在其上构建的解决方案更为灵活和高效。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 1万+

[HDU1402]A * B Problem Plus

Problem descriptionLink 计算A*B,其中A,B的位数不超过50000Possible Solution高精乘:时间复杂度O(n^2)FFT :时间复杂度O(nlogn)将A,B两数的每个位当做多项式A(X),B(X)的系数,计算出A(X)*B(X)的系数,在进行进位。记得到C附代码:#include<cstdio> #include<cstring> #include<al

kufaaa的专栏 591

2026年算法工程师常见面试简答题

本文摘要:文章系统梳理了机器学习与深度学习中的30个核心概念,涵盖模型优化、评估指标、经典算法和大模型应用等关键知识点。主要内容包括:1)过拟合与欠拟合的成因及解决方法;2)偏差-方差权衡原理;3)数据划分与交叉验证策略;4)分类/回归任务评估指标选择;5)逻辑回归、决策树、SVM等传统算法解析;6)梯度下降优化与正则化技术;7)CNN、RNN、Transformer架构对比;8)Embedding表示与RAG技术。特别强调面试高频考点如XGBoost改进、注意力机制原理等,并给出实际工程中的解决方案建议,

不务正业的猿 347

最详细的 SAP ABAP Web Service 创建和消费步骤讲解

本文原版发表于 SAP 官方社区,当时用的英文版写作,标题为:Step by step to create, consume and trace web service in ABAP system https://blogs.sap.com/2014/05/20/step-by-step-to-create-consume-and-trace-web-service-in-abap-system/ 总共阅读量超过 18 万。 How to create web service provider in A

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 3147

HDU 1402——A * B Problem Plus

题意:给定a,b,求a*b。思路:a,b的长度都为50000,直接模拟计算n*m肯定超时,可以用快速傅里叶变化计算,然后再把相应的系数化简出来。code:#include <iostream> #include <cstdio> #include <cstring> #include <cmath> using namespace std;const double PI=acos(-1.0); st

坚持不懈 1013

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

HDU 1402 A+B Problem Plus(FFT模板题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1402 #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;cmath&gt; #include&lt;algorithm&gt; using namespace std; #define maxn 65536+5 const dou...

满月照亮的路 425

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

hdu1402 A * B Problem Plus 高精度乘法 快速傅里叶变换(FFT)

模板题,具体请看代码注释 PS:wikioi3123需要把N改为400005,再去掉printf("\n");即可 #include #include #include #include #define N 200005 #define pi acos(-1.0) //PI值 using namespace std; struct complex { double r,i; c

code 4 fun 3014

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

HDU 1402 A * B Problem Plus

Problem Description Calculate A * B.   Input Each line will contain two integers A and B. Process to end of file. Note: the length of each integer will not exceed 50000.

Occult 1301

hdu 1402 A * B Problem Plus 快速傅里叶变换

A * B Problem Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 14598    Accepted Submission(s): 2741 Problem Description Calcul

G.D.Retop的专栏 929

HDU 1402 A * B Problem Plus [FFT]【数论】

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1402 ———————————————————————————. A * B Problem PlusTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissio

Tabris的博客 896

HDU - 1402 A * B Problem Plus (FFT)

题链:https://vjudge.net/problem/HDU-1402 思路:模板题,注意前导零。 #include <bits/stdc++.h> #define ll long long using namespace std; const int N = 5e4+10; const double PI = acos(-1.0); struct Complex { double r,i; Complex(double _r = 0,double _i = 0)

birdmanqin的博客 162

HDU 1402 A * B Problem Plus (FFT, 大整数乘法)

题目大意: 求两个大整数的乘积, 两个大整数长度都不超过50000, 多组数据, 时限1s 大致思路: 作为FFT算法的一个开头的题, 恩还是仔细写了一下 这个题就是把整数视作是两个多项式, 每一位就是一项, 那么就相当于是两个最高次数不超过50000的多项式乘积之后在x = 10出的值, 那么这样就很简单了, 直接处理出其多项式然后用FFT计算即可, 试水题, 改进模板中...

Gatevin的专栏 5509

[HDU1402] A * B Problem Plus && FFT模板

#include #include #include #include #include #include #define SF scanf #define PF printf #define DPI (PI*2) using namespace std; typedef long long LL; struct cpx { double re, im; cpx () {} cpx (dou

shiyukun1998的专栏 436

HDU1402 A * B Problem Plus

本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作。 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! 题目链接:HDU1402 正解:FFT 解题报告:   FFT模板题,注意一下进位处理。   重要的话...

dgoh41514的博客 114

【HDU 1402】A * B Problem Plus(FFT)

这道题是快速傅里叶变换的最模板的题了,存个板子 #include #include #include #include using namespace std; const double pi = acos(-1.0); const int N = 200005; struct Complex{ double r,i; Complex(double r = 0,double i

u011332631的专栏 395

FFT/NTT模板 既 HDU1402 A * B Problem Plus

@(学习笔记)[FFT, NTT] Problem Description Calculate A * B. Input Each line will contain two integers A and B. Process to end of file. Note: the length of each integer will not exceed 50000. Output Fo...

dk810510的博客 158

[HDU1402]A * B Problem Plus && FFT模板

复习了一发FFT的模板 然后只想说 这TM到底都是在干啥QAQ  好吧 以后要找机会重新学QAQ  存个模板在这里  今天看那个数学也是醉了啊orzorz #include #include #include #include #include #include #define SF scanf #define PF printf #define DPI (PI*2) using name

shiyukun1998的专栏 487

HDU 1402 A * B Problem Plus FFT

http://acm.hdu.edu.cn/showproblem.php?pid=1402 Calculate A * B. Input Each line will contain two integers A and B. Process to end of file. Note: the length of each integer will not exceed 50000. Outpu...

xiji333的博客 255

HDU_1402_A * B Problem Plus

FFT(快速傅里叶变换)模板题

edward_108 322
上一篇: hdu 2665 Kth number(划分树模板)
下一篇: POJ3070(矩阵快速幂模板)
THE___BEST
博客等级 码龄12年 10粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值