HDU 1402 FFT
来源:互联网 发布:淘宝卖衣服主页设计 编辑:程序博客网 时间:2024/06/08 17:29
#include <bits/stdc++.h>using namespace std;typedef complex<double> CPX;const int maxn = 2E5 + 10;const double PI = acos(-1);char s1[maxn], s2[maxn];int ans[maxn];void FFT(vector<CPX>&A, int op){int n = A.size();for (int i = 0, j = 0, k; i < n; i++){if (j > i) swap(A[i], A[j]);for (k = n; j & (k >>= 1); j &= (~k));j |= k;}double pi = PI * op;for (int m = 1; m < n; m <<= 1)for (int i = 0; i < m; i++){CPX tmp = exp(CPX(0, pi / m * i));for (int j = i; j < n; j += (m << 1)){CPX t = tmp * A[j + m];A[j + m] = A[j] - t, A[j] = A[j] + t;}}if (op == -1) for (int i = 0; i < n; i++) A[i] /= n;}void INT_CPX(char *s, vector<CPX> &o){int len = strlen(s);for (int i = 0; s[i]; i++)o[len - i - 1].real(s[i] - 48);}void CPX_INT(vector<CPX> O, int *n){for (int i = 0; i < O.size(); i++) n[i] = O[i].real() + 0.5;for (int i = 0; i < O.size(); i++) n[i + 1] += n[i] / 10, n[i] %= 10;}bool readin(){if (scanf("%s", s1) == EOF) return 0;else return scanf("%s", s2), 1;}void writeout(int *n, int len){for (len--; ans[len] == 0 && len; len--);for (; len >= 0; len--) printf("%d", n[len]);printf("\n");}void MULT(char *a, char *b){int len1 = strlen(a) << 1, len2 = strlen(b) << 1, len = 1;while (len < max(len1, len2)) len <<= 1;vector<CPX> X(len, 0), Y(len, 0), Z(len, 0);INT_CPX(a, X), INT_CPX(b, Y);FFT(X, 1), FFT(Y, 1);for (int i = 0; i < len; i++) Z[i] = X[i] * Y[i];FFT(Z, -1);memset(ans, 0, sizeof(ans));CPX_INT(Z, ans);writeout(ans, len);}int main(int argc, char const *argv[]){while (readin()) MULT(s1, s2);return 0;}
FFT的模板运用,A*B problem。
0 0
- hdu 1402 FFT
- HDU 1402 FFT
- HDU 1402 FFT
- FFT 模板(hdu 1402)
- hdu 1402(FFT)
- [FFT] HDU 1402
- HDU 1402 快速傅里叶变换FFT
- hdu 1402 (FFT 模版)
- HDU 1402 大数乘法 FFT
- hdu 1402 FFT(模板)
- HDU 1402 A * B (FFT)
- hdu 1402(FFT+大数乘法)
- HDU 1402 FFT 求 大数乘法
- hdu 1402 A * B Problem Plus FFT
- HDU 1402 A * B Problem Plus FFT
- [HDU 1402]A * B Problem Plus(FFT)
- HDU 1402 A * B Problem Plus FFT
- 【HDU】1402 A * B Problem Plus 【FFT】
- Eclipse 常用插件总结
- Linux 内存管理分析
- 小甲鱼PE详解之IMAGE_DOS_HEADER结构定义即各个属性的作用(PE详解01)
- Redis的5种数据结构
- "Selection cannot be launched and there are no recent launches”错误的解决方案
- HDU 1402 FFT
- 手机端上下滑动换页效果(二)
- Android 代码实现国内和国外的区分
- 面试大数据解决方案
- C++ 动态数组
- ImageView的scaleType属性
- ORM框架分析之DB到Entity的映射(四)
- ผลบอล บุนเดสลีกา ลาลีก้า
- unique函数