博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 4836: 二元运算
阅读量:6839 次
发布时间:2019-06-26

本文共 1334 字,大约阅读时间需要 4 分钟。

死活TLE....求助

update 4.3 23:08 求助了tls之后终于过了...分治里次数界写崩了...r-l+1就行...

分治的做法很神奇!本题的限制在于操作类型与权值相对大小有关,而用[l,mid]更新[mid+1,r]正好适应了本题的要求

#include 
#include
#include
#include
#include
using namespace std;typedef long long ll;const int N = (1<<17) + 5;const double PI = acos(-1.0);inline int read() { char c=getchar();int x=0,f=1; while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();} return x*f;} struct meow{ double x, y; meow(double x=0, double y=0):x(x), y(y){}};meow operator + (meow a, meow b) {return meow(a.x + b.x, a.y + b.y);}meow operator - (meow a, meow b) {return meow(a.x - b.x, a.y - b.y);}meow operator * (meow a, meow b) {return meow(a.x * b.x - a.y * b.y, a.x * b.y + a.y * b.x);}meow conj(meow a) {return meow(a.x, -a.y);}typedef meow cd; namespace fft { int maxlen = 1<<17, rev[N]; cd omega[N], omegaInv[N]; void init() { for(int i=0; i
>1; for(cd *p = a; p != a+n; p += l) for(int k=0; k
>1]>>1) | ((i&1)<<(k-1)); dft(a, n, 1); dft(b, n, 1); for(int i=0; i
>1; int n = 1, lim = r-l+1; if(r-l < 200) { for(int i=l; i<=mid; i++) if(a[i] || b[i]) for(int j=mid+1; j<=r; j++) c[i+j] += (ll) a[i] * b[j], c[j-i] += (ll) a[j] * b[i]; } else { while(n < lim) n<<=1; for(int i=0; i

转载地址:http://gkzul.baihongyu.com/

你可能感兴趣的文章
笨办法学 Python · 续 练习 44:使用 Python 的数据库 API
查看>>
Macaca入门篇(iOS)
查看>>
入门:如何理解区块链新商业?
查看>>
甲骨文宣布开源 GraphPipe,一种机器学习模型的新标准
查看>>
使用Eclipse开发Java应用并部署到SAP云平台SCP上去
查看>>
芯片巨头高通猛攻物联网 巨资收购恩智浦
查看>>
智能语音技术如何切C端市场,科大讯飞交出这样一份答卷
查看>>
区块链:重新定义世界,崛起于草根的“颠覆性”技术
查看>>
为保证太空超级计算机可长期使用,惠普宣布已成功为其加电
查看>>
禾赛科技李一帆:别让无人车的未来被一个小传感器憋死
查看>>
360度视频只是过渡,VR视频的“真交互”春天还没到
查看>>
Nginx常用命令(启动/重启/停止/测试配置文件/重新加载配置文件)
查看>>
SqlMap 初尝试
查看>>
Linux显示使用命令who(转)
查看>>
日本首台量子计算原型机推出速度为传统超算的百倍
查看>>
打印菱形(Print Diamond/Lozenge)
查看>>
SparkLabs全球加速器北京中心 正式开启首期项目招募
查看>>
zabbix客户端主动提交key模式 zabbix主动模式 zabbix主动式
查看>>
Python学习笔记-邮件模块SMTP
查看>>
限制优化时间和事件数的最佳方法
查看>>