牛客 華華給月月出題(素數篩 快速冪)

2022-10-11 12:33:15 字數 1211 閱讀 9138

題目鏈結

題意:

求n<=1.3*10^7。

題解:

一開始還以為是個模板題,直接用快速冪去求,但是tle了。看了題解才知道,要先篩素數。

因為每個數都可以表示成一些質數相乘,所以我們對於某個合數x,可以表示成 x=x的最小質因子*y。那麼x^n= x的最小質因子^n * y^n。那麼在素數篩的過程就我們就可以求出所有元素的n次方。這樣做可以減少使用快速冪的次數,大大降低了複雜度。

**:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define iss ios::sync_with_stdio(false)

using

namespace std;

typedef

unsigned

long

long ull;

typedef

long

long ll;

typedef pair<

int,

int>pii;

const

int maxn=

13e6+5

;const

int mod=

1e9+7;

const

int inf=

0x3f3f3f3f

;int prime[maxn]

;bool is_prime[maxn]

;ll fac[maxn]

;ll fastpow

(ll a, ll b)

//快速冪

return ans;

}void

solve

(int n)

is_prime[0]

=is_prime[1]

=false

;for

(int i=

2;i<=n;i++

)for

(int j=

0;j<=n;j++)}

}int

main()

cout<

}

牛客小白月賽12 華華給月月出題

題意 給乙個n,求1到n i n的異或和。n 1.3e7,顯然只能o n 因為i n是積性函式,所以可以線性篩o n 求出1到n的n次方,然而比賽的時候我寫了個假的線性篩。include using namespace std const int mod 1e9 7 int n bool ispri...

華華和月月種樹(牛客)

題意 華華看書了解到,一起玩養成類的遊戲有助於兩人培養感情。所以他決定和月月一起種一棵樹。因為華華現在也是資訊學高手了,所以他們種的樹是資訊學意義下的。華華和月月一起維護了一棵動態有根樹,每個點有乙個權值。剛開存檔的時候,樹上只有 0 號節點,權值為 0 接下來有兩種操作 操作 1 輸入格式1 i,...

牛客 華華教月月做數學 (快速冪)

華華教月月做數學 這道題屬於快速冪型別的題,唯一棘手的是用常規的快速冪會爆long long,這時候對於沒有大數的c 而言,要麼用手寫大數函式來做,要麼就在快速冪的基礎上,為防止溢位,將快速冪中的乘法拆成加法求餘,類似快速冪的快速乘。include using namespace std typed...