\(1\_998244353\):求\(19\)的冪,因為次數可能很大,所以直接對\(p\)的尤拉函式取模#include#define ll long long\(1?\)/\(1?+\):要猜模數,分別是\(1145141\),\(5211600617818708273\)
\(1wa\_998244353\):不能快速冪了,需要直接乘。。。發現迴圈節很短,考慮直接求出來
\(2p\):區間求質數, \(miller\_ rabbin\)即可
\(2u\):區間求莫比烏斯函式,先把\(10^6\)內的質數篩出來處理區間的數,大於\(10^6\)的質因子最多兩個,先判斷剩下的積是不是完全平方數,再用\(mr\)判斷是不是質數
\(2g\):區間求原根,設\(p\)的質因子有\(n\)種
對於區間長但原根小的,用\(o(pk)\)的方法,先找到乙個原根\(g\)(觀察資料即可),然後把形如\(g^i,i|p-1\),的篩掉,列舉\(p-1\)的每個質因子分別篩
對於區間短但是原根大的,用\(o(len \cdot n\log p)\),列舉\(x^}\),判斷是否模\(p\)餘\(1\)
#define dbg1(x) cerr<<#x<<"="<<(x)<<" "
#define dbg2(x) cerr<<#x<<"="<<(x)<<"\n"
#define dbg3(x) cerr<<#x<<"\n"
using namespace std;
#define reg register
inline ll read()
while(ch>='0'&&ch<='9')
return x*f;
}char ch[100];
ll mul(ll x,ll y,const ll m)
ll add(ll a,ll b,const ll m)
ll fp(ll x,ll y,const ll m)
const ll a=;
bool pd(ll x,int y=2)//miller_rabin
} return true;
}namespace pow19
{ ll read(ll m)
{ static char s[100];
scanf("%s",s);ll r=0;int len=strlen(s);
for(int i=0;i
十二省聯考2019 騙分過樣例
不想寫 太多了懶得講了 判質數可以用miller rabin就不用打幾十k的表了 篩mu 可能跑的比較慢,只能用一遍miller rabin 會有一些數會錯需要修正 pragma gcc optimize 2 pragma gcc optimize ofast include include inc...
十二省聯考2019 遊記
在機房呆了一天,大概看了看原先寫過的題,有點頹。下午的時候和大家一起打掃了一下機房。走的時候,看著空無一字的黑板,風吹起的棕黃色窗簾,遠方的藍色天空,有一種很濃厚的哀傷。時間過得真快啊,轉眼就是省選了呢。許是要退役了吧?許是要退役了吧。下午去試機了,感覺鍵盤不太星啊。考場倒是換了乙個地方 但是不讓我...
春節十二響 十二省聯考2019
給定一顆樹,要求將其上的節點分成若干組,使得每一組的節點互相不擁有祖先 後代關係。定義每一組的值為該組節點權值最大值,求值總和最小值。硬上不是很顯然的貪心,但是資料中鏈的情況給了提示。考慮鏈的情況 對於根節點兩側的鏈,我們分別排序,然後覆蓋選取即可。這個貪心的正確性是顯然的。現在考慮完整的資料 對於...