\(\text{FFT}\)

#include <cstdio>
#include <cmath>
#include <iostream>
#include <cstring>
#define re register
using namespace std; const int N = 2e6 + 1e5;
int c[N], rev[N];
char s[N]; const double Pi = acos(-1.0);
struct complex{
double x, y;
inline complex(double xx = 0, double yy = 0){x = xx, y = yy;}
inline complex operator + (const complex &b) const {return complex(x + b.x, y + b.y);}
inline complex operator - (const complex &b) const {return complex(x - b.x, y - b.y);}
inline complex operator * (const complex &b) const {return complex(x * b.x - y * b.y, x * b.y + y * b.x);}
}a[N], b[N]; inline void FFT(complex *a, int lim, int inv)
{
for(re int i = 0; i < lim; i++)
if (i < rev[i]) swap(a[i], a[rev[i]]);
for(re int mid = 1; mid < lim; mid <<= 1)
{
complex I = complex(cos(Pi / mid), inv * sin(Pi / mid));
for(re int i = 0; i < lim; i += mid << 1)
{
complex W = complex(1, 0);
for(re int j = 0; j < mid; j++, W = W * I)
{
complex x = a[i + j], y = W * a[i + j + mid];
a[i + j] = x + y, a[i + j + mid] = x - y;
}
}
}
} int main()
{
scanf("%s", s);
int n = strlen(s);
for(re int i = 0; i < n; i++) a[i].x = s[n - i - 1] ^ 48;
scanf("%s", s);
int m = strlen(s);
for(re int i = 0; i < m; i++) b[i].x = s[m - i - 1] ^ 48; int limit = 1;
while (limit < n + m - 1) limit <<= 1;
int bit = 0;
while ((1 << bit) < limit) ++bit;
for(re int i = 0; i < limit; i++) rev[i] = (rev[i >> 1] >> 1) | ((i & 1) << (bit - 1)); FFT(a, limit, 1), FFT(b, limit, 1);
for(re int i = 0; i < limit; i++) a[i] = a[i] * b[i];
FFT(a, limit, -1);
for(re int i = 0; i < limit; i++) c[i] = int(a[i].x / limit + 0.5);
for(re int i = 0; i < limit; i++)
{
if (c[i] >= 10) c[i + 1] += c[i] / 10, limit = ((i + 1) == limit ? limit + 1 : limit);
c[i] %= 10;
}
while (limit && !c[limit]) --limit;
for(re int i = limit; i >= 0; i--) printf("%d", c[i]);
}

\(\text{NTT}\)

#include <cstdio>
#include <iostream>
#include <cstring>
#define re register
using namespace std; const int N = 2e6 + 1e5;
const int P = 998244353, g = 3;
int a[N], b[N], rev[N];
char s[N]; inline int fpow(int x, int y)
{
int res = 1;
for(; y; y >>= 1)
{
if (y & 1) res = 1LL * res * x % P;
x = 1LL * x * x % P;
}
return res;
} inline void NTT(int *a, int lim, int inv)
{
if (lim == 1) return;
for(re int i = 0; i < lim; i++)
if (i < rev[i]) swap(a[i], a[rev[i]]);
for(re int mid = 1, I; mid < lim; mid <<= 1)
{
I = fpow(g, (P - 1) / (mid << 1));
if (inv == -1) I = fpow(I, P - 2);
for(re int i = 0, W; i < lim; i += mid << 1)
{
W = 1;
for(re int j = 0, x, y; j < mid; j++, W = 1LL * W * I % P)
{
x = a[i + j], y = 1LL * W * a[i + j + mid] % P;
a[i + j] = (x + y) % P, a[i + j + mid] = (x - y + P) % P;
}
}
}
} int main()
{
scanf("%s", s);
int n = strlen(s);
for(re int i = 0; i < n; i++) a[i] = s[n - i - 1] ^ 48;
scanf("%s", s);
int m = strlen(s);
for(re int i = 0; i < m; i++) b[i] = s[m - i - 1] ^ 48; int limit = 1;
while (limit < n + m - 1) limit <<= 1;
int bit = 0;
while ((1 << bit) < limit) ++bit;
for(re int i = 0; i < limit; i++) rev[i] = (rev[i >> 1] >> 1) | ((i & 1) << (bit - 1)); NTT(a, limit, 1), NTT(b, limit, 1);
for(re int i = 0; i < limit; i++) a[i] = 1LL * a[i] * b[i] % P;
NTT(a, limit, -1);
int inv = fpow(limit, P - 2);
for(re int i = 0; i < limit; i++) a[i] = 1LL * a[i] * inv % P;
for(re int i = 0; i < limit; i++)
{
if (a[i] >= 10) a[i + 1] += a[i] / 10, limit = ((i + 1) == limit ? limit + 1 : limit);
a[i] %= 10;
}
while (limit && !a[limit]) --limit;
for(re int i = limit; i >= 0; i--) printf("%d", a[i]);
}

LG P1919的更多相关文章

  1. Linux下安装性能测试负载机LG

    系统:CentOS release 6.6 (Final)  x86_64 安装包: 1.LRLG_00031.iso [Load Generator Standalone (Linux 64-bit ...

  2. bootstrap 之 xs,sm,md,lg && 主要颜色

    mobile – xs ( <768px ) tablet – sm ( 768~991px ) desktop – md ( 992~1170px ) large desktop – lg ( ...

  3. boostrap中lg,md,sm,xs

    boostrap中lg,md,sm,xs分别表示多少px? .col-xs- 超小屏幕 手机 (<768px).col-sm- 小屏幕 平板 (≥768px).col-md- 中等屏幕 桌面显示 ...

  4. LG 2.2.1 P350安卓系统刷机,问题总结,希望对需要的朋友有助

    手机误删软件导致短信,键盘等无声音提醒 我的手机前几天被我误删了一个软件,导致电话接不了,别人打电话的时候,老提示我在通话中,但是我可以在通话中看到对方的打电话记录.短信,键盘,USB连接,等等都没有 ...

  5. 美版nexus 5 LG D820才支持CDMA,国际版LG D821不支持

    我们都知道nexus 5其实是有两个不同的版本的,分别是LG D820和LG D821,它们在几乎所有的配置和外观上都没有任何的区别,主要区别在通讯模块上,一个支持GSM/CDMA/WCDMA/LTE ...

  6. 洛谷P1919 【模板】A*B Problem升级版 题解(FFT的第一次实战)

    洛谷P1919 [模板]A*B Problem升级版(FFT快速傅里叶) 刚学了FFT,我们来刷一道模板题. 题目描述 给定两个长度为 n 的两个十进制数,求它们的乘积. n<=100000 如 ...

  7. git lg 使用 转

    命令: git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yello ...

  8. git lg 配置

    git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d ...

  9. 国行 lg g3 D858 刷 lg g3 D858hk 教程(备忘)

    纯手打,转载请注明出处~ 刷机有风险,出现问题概不负责! 本着自娱自乐的宗旨 ,分享一下,出了问题不负责! 准备的材料: 1,手机一枚(废话)国行lg g3 d858 2,root 工具 用来root ...

  10. LG Optimus L90 [D415] T-Mobile 刷机

    1 先使用[ROOT大师]ROOT手机. 2 执行以下ADB命令. adb shell su //备份 dd /by-name/laf of=/sdcard/laf.img. //清除 dd /by- ...

随机推荐

  1. <二>派生类的构造过程

    派生类从继承可以继承来所有的成员(变量和方法) 除了构造函数和析构函数 派生类怎么初始化从基类继承来的成员变量的呢?通过调用基类的构造函数来初始化 派生类的构造函数和析构函数,负责初始化和清理派生类部 ...

  2. 关于CSDN微信登录接口的研究

    代码 import requests import re from threading import Thread import time import requests from io import ...

  3. 关于 python 的内存机制

    先看一段代码 L = [1,2,3] dic_ = {} L2 = [] for i in L: dic_['sn'] = i L2.append(dic_) print(L2) 输出 [{'sn': ...

  4. Google Chrome(谷歌浏览器)安装使用

    谷歌浏览器官网https://www.google.cn/chrome/ Chrome是由Google开发的一款简单便捷的网页浏览工具.谷歌浏览器(Google Chrome)可以提帮助你快速.安全的 ...

  5. 3.8:使用R语言实现Apriori算法示例

    〇.目标 1.使用R语言实现Apriori算法完成关联规则挖掘:2.利用超市购物篮Groceries数据进行关联规则分析. 一.利用arules包加载Groceries数据集 二.探索和准备数据 三. ...

  6. 3.7:基于Weka的K-means聚类的算法示例

    〇.目标 1.使用Weka平台,并在该平台使用数据导入.可视化等基本操作: 2.对K-means算法的不同初始k值进行比较,对比结果得出结论. 一.打开Weka3.8并导入数据 二.导入数据 三.Si ...

  7. 基于MATLAB的人民币识别系统

    1.选图背景 随着科技的发展,图像识别技术在计算机视觉领域起着越来越重要的作用,现已被应用到金融.军事.公安刑侦.生物医学.机器视觉等各个领域: 随着国民经济的快速发展,人民币大量流通市场,商业交易都 ...

  8. Django测试脚本-单表操作(增删改查)-必知必会13条-神奇的双下划线

    目录 一:Django测试脚本 1.测试环境准备 2.tests.py 3.models.py 4.切换MySQL数据库 二:单表操作 1.pk关键字与get关键字 2.增 3.删 4.修 三:必知必 ...

  9. ConditionAlOnProperties实现可插拔?

    大家好,我是3y,一年CRUD经验用十年的markdown程序员‍常年被誉为职业八股文选手 我又又又又被吐槽了,随之而来,我的消息推送平台开源项目Austin又又又又更新啦,迭代自己的项目多是一件美事 ...

  10. C语言读写txt文件

    写入和读取txt文件 #include<stdio.h> #include<string.h> int main( int argc, char *argv[] ) { int ...