BZOJ4869 相逢是問候(線段樹,尤拉定理)

2021-08-14 21:32:33 字數 1357 閱讀 2896

bzoj

根據尤拉定理遞迴計算(類似上帝與集合的正確用法)

所以我們可以用線段樹維護區間最少的被更新的多少次

如果超過了

φ 的限制

就不用再計算了

如果需要計算就每次暴力算

這樣的複雜度o(

nlog

2)

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define lson (now<<1)

#define rson (now<<1|1)

#define max 80000

#define ll long long

inline

int read()

int a[max],c,p,n,m;

ll phi[max],tot;

ll phi(ll x)

if(x>1)ret=ret/x*(x-1);

return ret;

}ll fpow(ll a,ll b,ll p)

if(fl)s+=p;

return s;

}struct nodet[max<<2];

inline

void build(int now,int l,int r)

int mid=(l+r)>>1;

build(lson,l,mid);build(rson,mid+1,r);

t[now].sum=(t[lson].sum+t[rson].sum)%p;

}ll calc(int l,int r,ll x,ll p)

void modify(int now,int l,int r,int l,int r)

int mid=(l+r)>>1;

if(l<=mid)modify(lson,l,mid,l,r);

if(r>mid)modify(rson,mid+1,r,l,r);

t[now].tt=min(t[lson].tt,t[rson].tt);

t[now].sum=(t[lson].sum+t[rson].sum)%p;

}int query(int now,int l,int r,int l,int r)

int main()

phi[++tot]=1;

while(m--)

return

0;}

BZOJ4869 相逢是問候 線段樹 尤拉定理

直接上傳送門 bzoj4869 相逢是問候 題意 維護數列區間和,帶有將原數a i 修改為ca i 的操作 演算法 線段樹 tex尤拉定理 思路 當 c p 時下式成立 cx cx p p mo dp 證明 大佬 微小的尤拉定理ext證明 若我們對乙個值x反覆進行該操作,簡單來看過程如下 cc x ...

BZOJ4869 相逢是問候(線段樹,尤拉定理)

bzoj 根據尤拉定理遞迴計算 類似上帝與集合的正確用法 所以我們可以用線段樹維護區間最少的被更新的多少次 如果超過了 varphi 的限制 就不用再計算了 如果需要計算就每次暴力算 這樣的複雜度 o nlog 2 include include include include include in...

4869 Shoi2017 相逢是問候

4869 shoi2017 相逢是問候 time limit 40 sec memory limit 512 mb submit 440 solved 124 submit status discuss description informatikverbindetdichundmich.資訊將你我...