博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ 4028 分块
阅读量:6273 次
发布时间:2019-06-22

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

zrt当年是怎么想到的…….

思路:
考虑把序列分块
对于每块 存xor[i] 表示从本块开头到i的前缀异或和
把它扔进set里
存gcd[i]表示从本块开头到i的前缀gcd.
如果这一块的GCD和整个的gcd的gcd是一样的 从set里找ans
否则暴力..
GCD最多log种 所以是复杂度是O(nsqrt(n)logn)的

//By SiriusRen#include 
#include
#include
#include
#include
using namespace std;const int N=100050;int n,q,a[N],Block,block[N],XOR[N],GCD[N];char op[150];typedef long long ll;set
s[320];int gcd(int x,int y){ return y?gcd(y,x%y):x;}signed main(){ scanf("%d",&n),Block=sqrt(n); for(int i=0;i

转载于:https://www.cnblogs.com/SiriusRen/p/6532023.html

你可能感兴趣的文章
玩转Edas应用部署
查看>>
music-音符与常用记号
查看>>
sql操作命令
查看>>
zip 数据压缩
查看>>
Python爬虫学习系列教程
查看>>
【数据库优化专题】MySQL视图优化(二)
查看>>
【转载】每个程序员都应该学习使用Python或Ruby
查看>>
mongoose crud
查看>>
[Head First设计模式]山西面馆中的设计模式——装饰者模式
查看>>
PHP高级编程之守护进程,实现优雅重启
查看>>
PHP字符编码转换类3
查看>>
【2016阿里安全峰会】解读安全人才缺乏困境破解之法【附PDF下载】
查看>>
50条大牛C++编程开发学习建议
查看>>
rsync同步服务配置手记
查看>>
Android下创建一个sqlite数据库
查看>>
数组<=>xml 相互转换
查看>>
MFC单文档应用程序显示图像
查看>>
DT科技评论:第2期
查看>>
poj 2777(线段树的节点更新策略)
查看>>
Swift-EasingAnimation
查看>>