BZOJ3813 : 奇数国

本文探讨了如何使用线段树优化算法解决区间乘积查询问题,重点介绍了算法实现过程及优化技巧。

询问[l,r]实际就是询问$\varphi(该区间内所有数的乘积)$

$\varphi(n)=n\times...\times(1-\frac{1}{p_i})$

由于素数只有60个,所以只需用线段树维护区间内所有数字的积,以及压位表示的出现过的素数即可

$O(\log n)$每次操作

 

#include<cstdio>
typedef long long ll;
const int n=100000,P=19961993;
int m,i,j,x,y,p[60],t;ll val,ap,rev[60];bool v[282];
struct P{ll val,ap;}T[400010];
inline void up(int x){
  T[x].val=T[x<<1].val*T[x<<1|1].val%P;
  T[x].ap=T[x<<1].ap|T[x<<1|1].ap;
}
void build(int x,int a,int b){
  if(a==b){T[x].val=3,T[x].ap=2;return;}
  int mid=(a+b)>>1;
  build(x<<1,a,mid),build(x<<1|1,mid+1,b),up(x);
}
void change(int x,int a,int b,int c,int d){
  if(a==b){
    T[x].val=d,T[x].ap=0;
    for(int i=0;i<60;i++)if(d%p[i]==0)T[x].ap|=1LL<<i;
    return;
  }
  int mid=(a+b)>>1;
  if(c<=mid)change(x<<1,a,mid,c,d);else change(x<<1|1,mid+1,b,c,d);
  up(x);
}
void ask(int x,int a,int b,int c,int d){
  if(c<=a&&b<=d){val=val*T[x].val%P;ap|=T[x].ap;return;}
  int mid=(a+b)>>1;
  if(c<=mid)ask(x<<1,a,mid,c,d);
  if(d>mid)ask(x<<1|1,mid+1,b,c,d);
}
inline ll pow(ll a,int b){ll t=1;for(;b;b>>=1,a=a*a%P)if(b&1)t=t*a%P;return t;}
inline void read(int&a){char ch;while(!(((ch=getchar())>='0')&&(ch<='9')));a=ch-'0';while(((ch=getchar())>='0')&&(ch<='9'))a*=10,a+=ch-'0';}
int main(){
  for(i=2;t<60;i++)if(!v[i])for(p[t++]=j=i;j<=281;j+=i)v[j]=1;
  for(i=0;i<60;i++)rev[i]=pow(p[i],P-2)*(p[i]-1)%P;
  build(1,1,n);
  read(m);
  while(m--){
    read(j),read(x),read(y);
    if(j)change(1,1,n,x,y);else{
      val=1,ap=0;
      ask(1,1,n,x,y);
      for(j=0;j<60;j++,ap>>=1)if(ap&1)val=val*rev[j]%P;
      printf("%lld\n",val);
    }
  }
  return 0;
}

  

 

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值