十二省聯考 2019 騙分過樣例

2022-07-22 23:57:28 字數 1213 閱讀 5487

\(1\_998244353\):求\(19\)的冪,因為次數可能很大,所以直接對\(p\)的尤拉函式取模

\(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\)

#include#define ll long long

#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

給定一顆樹,要求將其上的節點分成若干組,使得每一組的節點互相不擁有祖先 後代關係。定義每一組的值為該組節點權值最大值,求值總和最小值。硬上不是很顯然的貪心,但是資料中鏈的情況給了提示。考慮鏈的情況 對於根節點兩側的鏈,我們分別排序,然後覆蓋選取即可。這個貪心的正確性是顯然的。現在考慮完整的資料 對於...