当前位置: 首页 > news >正文

P3338 [ZJOI2014] 力

快速傅里叶(FFT)+推式子

#include<bits/stdc++.h>
using namespace std;
const int N=4e6; //2^22=4194304
const double PI=acos(-1.0);
typedef complex<double> Complex;
double A[N], B[N], C[N], L[N], R[N]; // FFT加速卷积,输入:a[0..na], b[0..nb],输出:c[0..na+nb]
void Mul(double *a, double *b, double *c, int na, int nb) {int len = 1;while (len < na + nb - 1) len <<= 1;   // 补齐到 2 的幂static Complex A[1 << 22], B[1 << 22]; // 注意:临时数组大小需根据实际最大len调整for (int i = 0; i < na; i++) A[i] = Complex(a[i], 0);fill(A + na, A + len, Complex(0, 0));for (int i = 0; i < nb; i++) B[i] = Complex(b[i], 0);fill(B + nb, B + len, Complex(0, 0));vector<int> rev(len); // 位逆序置换数组for (int i = 0; i < len; i++)rev[i] = (rev[i >> 1] >> 1) | ((i & 1) ? (len >> 1) : 0);auto fft = [&](Complex *a, int type) { // FFT 变换(type=1 为正变换,-1 为逆变换)for (int i = 0; i < len; i++)if (i < rev[i]) swap(a[i], a[rev[i]]);for (int mid = 1; mid < len; mid <<= 1) {Complex wn(cos(PI / mid), type * sin(PI / mid)); // 单位根for (int i = 0; i < len; i += (mid << 1)) {Complex w(1, 0);for (int j = 0; j < mid; j++) {Complex x = a[i + j], y = w * a[i + j + mid];a[i + j] = x + y;a[i + j + mid] = x - y;w *= wn;}}}if (type == -1) {for (int i = 0; i < len; i++) a[i] /= len;}};fft(A, 1); fft(B, 1);for (int i = 0; i < len; i++) A[i] *= B[i];fft(A, -1);for (int i = 0; i < na + nb - 1; i++) c[i] = A[i].real(); // 取实部
}int main() {int n;cin >> n; for(int i=1; i <= n; i++) {cin >> A[i];C[n-i]=A[i];B[i]=(double)(1.0/i/i);}Mul(A, B, L, n+1, n+1);Mul(C, B, R, n+1, n+1);for(int i=1;i<=n;++i)printf("%.3lf\n",L[i]-R[n-i]);return 0;	
}
http://www.jsqmd.com/news/546616/

相关文章:

  • HunyuanVideo-Foley实战案例:为纪录片自动匹配环境音效的完整工作流
  • GitHub Desktop中文汉化终极指南:三分钟解锁全中文Git操作体验
  • FreeRTOS学习笔记(10):任务创建方式详解:静态创建与动态创建
  • 3个核心突破:webSpoon企业级数据集成实战指南
  • 在UP-MOBNET-Ⅱ实验箱上玩转俄罗斯方块:从源码编译到U盘移植的保姆级教程
  • 颠覆PDF转换体验:Marker无缝实现25页/秒全场景文档格式精准迁移
  • 贵阳装修工作室怎么选?2026年最新专业评估与五强服务商推荐 - 2026年企业推荐榜
  • 2026上海企业增资扩股,这五家专业律师团队值得关注 - 2026年企业推荐榜
  • ArduinoMqtt:面向MCU的零堆内存同步MQTT客户端实现
  • 从气象API到网页展示:用Leaflet-velocity实现实时风场动画的保姆级教程
  • 告别杂乱农场:星露谷物语规划神器助你打造高效田园
  • 四川正规文武寄宿学校:武术夏令营学校/知名的武术学校/专业学武术的学校/乐山文礼武校/乐山武术学校/选择指南 - 优质品牌商家
  • 从‘暴力匹配’到KMP优化:用nextval数组提升字符串查找效率的实战图解
  • 深入解析NAND Flash基础操作与系统集成——从阵列结构到多Die协同
  • 5分钟搞定!RevokeMsgPatcher 2.1:Windows平台微信QQ防撤回终极解决方案
  • 2026年污水处理工程厂家权威推荐榜:红膜储存水池/红膜沼气储存袋/红膜沼气池/肥水一体化工程/黑膜储存水池/选择指南 - 优质品牌商家
  • Anthropic 经济指数报告:学习曲线
  • MX28智能舵机RS485底层驱动开发实战
  • 2026年高精度温控仪市场深度解析:五大技术实力派源头厂家横向对比 - 2026年企业推荐榜
  • 别再死记硬背了!用大白话+动图搞懂惯性导航里的‘比力方程’和‘哥氏加速度’
  • Linux initramfs深度解析: 从内核启动到根文件系统的桥梁(3)
  • 衡水地区玻璃钢夹砂管道怎么选?认准这3大标准,源头厂家不踩坑! - 2026年企业推荐榜
  • Mac本地AI绘画解决方案:Mochi Diffusion完全指南
  • 东佑达步进电缸控制器TC100的labview控制vi,可以通过RS485控制电缸运动
  • 2026年奶茶创业新观察:为何“实力系统”比“网红单品”更持久? - 2026年企业推荐榜
  • AceCommon:Arduino嵌入式零堆分配轻量C++工具库
  • 语言边界消融术:当Obsidian插件遇见i18n的魔法
  • 2026色母机选购指南:数据驱动下的市场格局与TOP5服务商深度测评 - 2026年企业推荐榜
  • OpenClaw怎么部署?OpenClaw天翼云新手4分钟安装及使用教程【最新版】
  • 2026年长春APP开发服务商综合实力解析与选型指南 - 2026年企业推荐榜