[BZOJ]2194: 快速傅立叶之二】的更多相关文章

2194: 快速傅立叶之二 Time Limit: 10 Sec  Memory Limit: 259 MB Description 请计算C[k]=sigma(a[i]*b[i-k]) 其中 k < = i < n ,并且有 n < = 10 ^ 5. a,b中的元素均为小于等于100的非负整数. Input 第一行一个整数N,接下来N行,第i+2..i+N-1行,每行两个数,依次表示a[i],b[i] (0 < = i < N). Output 输出N行,每行一个整数,第…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2194 如果把 a 序列翻转,则卷积得到的是 c[n-i],再把得到的 c 序列翻转即可. 代码如下: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; typedef d…
题目大意:给定序列a,b,求序列c满足c[k]=sigma(a[i]*b[i-k]) (k<=i<n).(n<=10^5) 思路:观察发现就是普通的卷积反一反(翻转ab其中一个后做卷积,倒着输出即可),FFT模板复习. #include<cstdio> #include<cmath> #include<algorithm> using namespace std; inline int read() { int x;char c; '); )+(x&l…
Description 请计算C[k]=sigma(a[i]*b[i-k]) 其中 k < = i < n ,并且有 n < = 10 ^ 5. a,b中的元素均为小于等于100的非负整数. Input 第一行一个整数N,接下来N行,第i+2..i+N-1行,每行两个数,依次表示a[i],b[i] (0 < = i < N). Output 输出N行,每行一个整数,第i行输出C[i-1]. Sample Input 5 3 1 2 4 1 1 2 4 1 4 Sample O…
题目链接 \(Descripiton\) 给定\(A[\ ],B[\ ]\),求\[C[k]=\sum_{i=k}^{n-1}A[i]*B[i-k]\ (0\leq k<n)\] \(Solution\) (先令\(n=n-1\)) 首先往卷积上想.. \(i\)与\(i-k\)的差值是一定的,但是卷积的形式是\[C[k]=\sum_{i=1}^k A[i]*B[k-i]\] 即\(i\)与\(k-i\)的和是一定的. 于是考虑把一个数组反转一下,这里把\(B[\ ]\)反转,那么\[C[k]=…
[题目分析] 咦,这不是卷积裸题. 敲敲敲,结果样例也没过. 看看看,卧槽i和k怎么反了. 艹艹艹,把B数组取个反. 靠靠靠,怎么全是零. 算算算,最终的取值范围算错了. 交交交,总算是A掉了. [代码] #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <map> #include <set> #include <…
看别的blog好像我用了比较麻烦的方法-- (以下的n都--过 \[ c[i]=\sum_{j=i}^{n}a[i]*b[j-i] \] 设j=i+j \[ c[i]=\sum_{j=0}^{n-i}a[i+j]*b[i+j-i] \] \[ c[i]=\sum_{j=0}^{n-i}a[i+j]*b[j] \] 再设j=n-i-j \[ c[i]=\sum_{n-i-j}^{n-i}a[n-i-j+i]b[n-i-j] \] \[ n-i-j \geq 0 \Rightarrow j \leq…
BZOJ 2194 快速傅立叶变换之二 题意 给出两个长为\(n\)的数组\(a\)和\(b\),\(c_k = \sum_{i = k}^{n - 1} a[i] * b[i - k]\). 题解 我们要把这个式子转换成多项式乘法的形式. 一个标准的多项式乘法是这样的: \[c_k = \sum_{i = 0}^{k} a[i] * b[k - i]\] 来看看原式: \[c_k = \sum_{i = k}^{n - 1} a[i] * b[i - k]\] 将a翻转得到a': \[c_k…
2194: 快速傅立叶之二 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 1273  Solved: 745 Description 请计算C[k]=sigma(a[i]*b[i-k]) 其中 k < = i < n ,并且有 n < = 10 ^ 5. a,b中的元素均为小于等于100的非负整数. Input 第一行一个整数N,接下来N行,第i+2..i+N-1行,每行两个数,依次表示a[i],b[i] (0 < = i <…
http://www.lydsy.com/JudgeOnline/problem.php?id=2194 题意:求$c[k]=\sum_{k<=i<n} a[i]b[i-k], n<=10^5$ #include <bits/stdc++.h> using namespace std; struct cp { double x, y; cp(double _x=0, double _y=0):x(_x),y(_y) {} cp operator+(const cp &…