Shoi2017 相逢是問候

2022-05-06 23:24:06 字數 1818 閱讀 8393

傳送門

這種「暴力線段樹」可以考慮一下是不是有什麼特殊性質。

對於這道題什麼要知道:

可能這裡寫得比較清楚(摘自)

感覺就是乙個迭代的過程。

而乙個數在操作k次之後就可以不用再操作了。

然後使用尤拉定理的時候要特判一下:

x>=phi時,最後要加乙個phi

小於則不加。

預處理出所有的phi,記得最後乙個phi為1。

#include#define ll long long

#define n 50003

using

namespace

std;

intread()

while(s>='

0'&&s<='9')

return x*f;

}ll n,m,p,c;

ll num=0

;ll a[n],p[n];

int ok=0

;ll quick(ll a,ll x,ll mod)

return

ans;

}int phi(int

x) }

if(x!=1)ans=ans/x*(x-1

);

return

ans;

}ll sum[n

<<2],ge[n<<2

];void pushup(int

k)void build(int k,int l,int

r)

int mid=(l+r)>>1

; build(k

<<1

,l,mid);

build(k

<<1|1,mid+1

,r);

pushup(k);

}ll query(

int k,int l,int r,int l,int

r)

if(r>mid)

return ans%p;

}ll cal(ll x,ll times)

returnx;}

void modify(int k,int l,int r,int l,intr)

int mid=(l+r)>>1

;

if(l<=mid)modify(k<<1

,l,mid,l,r);

if(r>mid)modify(k<<1|1,mid+1

,r,l,r);

pushup(k);

}int

main()

p[++num]=1

;

int flagg=0

;

for(int i=1;i<=n;++i)a[i]=read();

build(

1,1,n);

for(int i=1;i<=m;++i)

else

if(op==1

) }}

view code

SHOI 2017 相逢是問候

loj 2142 相逢是問候 首先 這道題目很輕易地就能想到用線段樹求和 但是題目的難點在於 ca imodp caimod pmodp 解決這個問題的公式是 ab abmod p b ai p modp 根據這個公式逆推一下 ca imodp caimod p ai p p modp 以下簡寫 b...

4869 Shoi2017 相逢是問候

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

六省聯考2017 相逢是問候

題意 給定乙個長度為n的序列a,常數p和c。你需要支援m次操作,分為兩種 n,m leq 50000,c題解 一般像這種看起來根本沒法維護的線段樹題都是操作幾次就變常數了,於是我們考慮一下這個操作的性質。首先引入拓展尤拉定理 a mod p begina b 注意到 phi p 在 k 30 左右的...