注意一下比较重要的:

逆序的操作:它的上一位置的值去掉一位,在加上它本身向左缩进的一部分

对位的操作,注意是<n 因为方便操作,从0处理

注意交换a的值

注意奇项要乘w

码:

#include<iostream>
#include<complex>
#include<cstring>
#include<cstdio>
#include<cmath>
#define pi acos(-1)
#define N 200000
using namespace std;
typedef complex<double>E;
E a[N],b[N];
int n,m,c[N],r[N];
char ch[200005];void fft(E *a,int f)
{int i,j,k;for(i=0;i<n;i++)if(i<r[i])swap(a[i],a[r[i]]);for(i=1;i<n;i<<=1){E wn(cos(pi/i),f*sin(pi/i));for(j=0;j<n;j+=(i<<1)){E w(1,0);for(k=0;k<i;k++,w*=wn){E x=a[k+j],y=a[k+j+i]*w;a[k+j]=x+y,a[k+j+i]=x-y;    }}}if(f==-1)for(i=0;i<n;i++)a[i]/=n;
}
int main()
{int i,j,l=0;scanf("%d",&n);n--;
scanf("%s",ch);for(i=0;i<=n;i++)a[i]=ch[n-i]-'0';scanf("%s",ch);for(i=0;i<=n;i++)b[i]=ch[n-i]-'0';m=2*n;for(n=1;n<=m;n<<=1)l++;for(i=0;i<n;i++)r[i]=(r[i>>1]>>1)|((i&1)<<(l-1));fft(a,1);fft(b,1);for(i=0;i<=n;i++)a[i]=a[i]*b[i];fft(a,-1);for(i=0;i<=m;i++)c[i]=(int)(a[i].real()+0.1); for(i=0;i<=m;i++)if(c[i]>=10)//进位 {c[i+1]+=c[i]/10,c[i]%=10;if(i==m)m++;}for(i=m;i>=0;i--)printf("%d",c[i]);}

2017.8.24 快速傅里叶 思考记录相关推荐

  1. 2017.9.5 组合数学 思考记录

    这题风格很正统.所以我感觉如果自己能不靠题解把这个题做出来,那应该就学得不错了.. 于是在历尽千辛万苦之后,终于1A了.(事后证明 结论题的结论强行无视 乱搞也是有可能AC的) xym&ISA ...

  2. 2017.9.4 Nim 思考记录

    只要知道nim的结论   这题就是链剖板子题.1A 注意bzoj 的  换行符是     \r!!      \r!!      \r!! 就说一下链剖的易错点吧: 1.记录父节点.sz.深度 2.当 ...

  3. 2017.10.28 排序 思考记录

    这个题有一种套路,就是大小关系转化成01串,这样就变成了二分检验问题,, 就是把排序变成区间修改,然后单点查询.. 把所有比他小的赋成0,比他大的赋成1 然后判断要求位是0还是1来判断答案与当前值的大 ...

  4. 2017.10.28 压缩 思考记录

    这个题首先要知道M和R不是栈的搭配,是贪心的搭配,,就是向左找到第一个M.. 如 abababab cdcdcdcd abababab cdcdcdcd   = abRRcdcdcdcdR != Ma ...

  5. 2017.10.6 单词 思考记录

    少有的会做的ac自动机题 .这个题是匹配模式串. 所以就不需要匹配的过程,只需要建出fail树,然后直接拓扑 由于每次加进去一个单词,这个单词的每一个字母都有可能作为最后一个字母影响他的失配,所以词路 ...

  6. 2017.10.5 高速公路 思考记录

    ..一开始死活不知道样例8/3是怎么算出来的.. 后来才发现右端点要-1.. 这个题说是期望,但因为每个点的概率相同,所以直接求和然后除就可以了 维护每个区间的答案,听说直接维护答案很难写,,感觉还可 ...

  7. 2017.10.1 蚯蚓 思考记录

    现在看来这个题真心不难. 如果能保证一个从大到小的顺序的话,对所有的数依次进行相同比例的分裂操作,左右两边一定也是单调的 由于每次要+q,等价于取出元素-q,这在式子里是不影响大小关系的 所以就sor ...

  8. 2017.9.28 产品加工 思考记录

    很早之前做的了.发现bzoj上竟然没提交过 于是又重推了一遍 首先这个ti<=5是用来让n^2的复杂度降一降的, 然后就考虑装每个物品之后各个机器的耗时,同时,对于一个A机器的耗时,可能会有多个 ...

  9. 2017.9.28 降雨量 思考记录

    论逻辑清晰的重要性. 首先大小的关系明摆着是要你建一颗线段树 然后就可以分类讨论了 x没有 y有 x有 y没有 x没有 y没有 x有 y有 对于都没有的情况  只可能是maybe 对于一个没有的情况, ...

最新文章

  1. 算术表达式求解背景_1.8 C++算术运算符与表达式
  2. python几种排序_python各种排序算法
  3. 让 Git 全局性的忽略 .DS_Store
  4. VTK:可视化之LODProp3D
  5. hp-ux mysql_HP-UX安装MySQL
  6. “约见”面试官系列之常见面试题之第八十七篇之ajax发送多个请求优化(建议收藏)
  7. 浙江大学计算机科学与技术学院分数线,浙江大学录取分数线一般在多少 高考最低多少分能上浙大...
  8. java实现n选m组合数_求组合数m_n
  9. 「1s」即可!用 VS Code 一键玩转 GitHub 代码!
  10. 樊登高效休息法读书心得_读书时间丨高效休息法:让身体和大脑彻底放松的七个方法...
  11. 日记 [2008年01月05日]NTP 服务器
  12. can总线一帧多少字节多少位_汽车CAN总线数据帧解析---汽车语言知多少
  13. 去掉百度地图API左下角的百度LOGO方法
  14. php有个schost.exe_svchost.exe是什么
  15. spring实战笔记
  16. java 订单号生成器
  17. sklearn模块之朴素贝叶斯:(二)伯努利模型的实现
  18. 有关Bert模型的理解
  19. 1.1.7. Least Angle Regression(最小角回归)和 1.1.8. LARS Lasso
  20. 《活着就为改变世界:史蒂夫.乔布斯转》读书分享

热门文章

  1. leetcode89 (2022.1.8)
  2. java 隐藏域_java 隐藏域传值
  3. poj 1797 HeavyTransportation——最小边的最大值
  4. php 忽略加载动态某个目录,限定某个目录禁止解析php 、限制user_agent 、php的配制文件、PHP的动态扩展模块...
  5. python processpoolexector 释放内存_python之ThreadPoolExecutor
  6. ES6_有关数组的函数_note
  7. 深度linux系统反复重启,修复启动
  8. recv函数返回0_函数VLOOKUP与LOOKUP的PK,大战一触即发 Excel神技能!
  9. python有哪些游戏模块_python游戏模块 Pygame常用方法
  10. linux打开lua后中文有乱码,总结Lua使用中遇到的小问题