51nod 1135
題目描述
求小於1e9的素數p的原根
#include using namespace std;
int pi[40];
int tot=0;
int power(int x,int n,int p)
n>>=1;
base=1ll*base*base%p;
} return ans;
}int main()
} if(x!=1)pi[++tot]=x;
for(int i=2;iloj 6156
題目描述
這是乙個非常簡單的問題。
wmq 如今開始學習乘法了!他為了訓練自己的乘法計算能力,寫出了 n
nn 個整數,並且對每兩個數 a,b
a,ba,
b 都求出了它們的乘積 a⋅b
a\cdot b
a⋅b。現在他想知道,在求出的n(n
−1)2
\frac
2n(n−1
) 個乘積中,除以給定的質數 m
mm 餘數為 k(0
≤k
k(0\leq kk(
0≤k的有多少個。
#include using namespace std;
typedef complexe;
typedef long long ll;
const double pi=acos(-1.0);
int power(int x,int n,int p)
return ans;
}int n,m;
int p[40];
int tot;
int g;//原根
int to[60007];//i->g^j
int from[60007];//g^j->i
int cnt[60007];
e a[1<<18];
int r[1<<18];
ll ans[60007];
void fft(e a,int op,int n)
e ( double r , double i ) : r ( r ) , i ( i ) {}
e operator + ( const e& p ) const
e operator - ( const e& p ) const
e operator * ( const e& p ) const
} ;int p;
int g;//原根
double a[100007],b[100007];
int to[100007];//i->g^j
int from[100007];//g^j->i
e a[1<<20],b[1<<20];
int r[1<<20];
void fft(e a,int op,int n)
for(int i=p-1;imul=1;
for(int i=0;ifor(int i=p-1;ifft(a,1,len);
fft(b,1,len);
for(int i=0;ifft(a,-1,len);
for(int i=p-1;i<=2*p-4;i++)a[i].r+=a[i%(p-1)].r;
for(int i=p-2;i<=2*p-4;i++)
for(int i=0;iprintf("\n");
}}
一道fft練習題
考場上想到的o n 2 o n 2 o n2 暴力 記f i j f i j f i j 表示前i個位置,長度為j的連擊出現的期望次數 記g i j g i j g i j 表示第到i個位置為止,目前連擊次數為j的概率 轉移時有一些細節 include using namespace std con...
python書中練習題 python練習題
1 定義乙個空列表,接收從鍵盤輸入的整數,把列表傳給乙個從大到小排序的函式,再輸出排序後的列表的值 listex b 0 a int input 請輸入列表長度 while b a num int input 請輸入字元 b 1 print listex sum 0 for i in range 0...
python的練習題 Python練習題
1 使用while迴圈輸入1 2 3 4 5 6 8 9 10 i 0while i 10 i i 1 if i 7 continue print i 結果 e python python python test.py1 2 求1 100的所有數的和 i 0sum 0 while i 100 i 1...