中北大學ACM 5 12 T6 CSY的幸福

2022-04-14 07:43:10 字數 1449 閱讀 4560

題面:

給出乙個整數n,求有4^n個因數的最小整數,結果對998244353取餘,找到這個數字就能讓csy獲得幸福。(n<=100000)

(原題並不是csy)去打acm比賽,6道水題,2道藍題,2道紫題,這道題大概在紫題水平?(我太菜了)

平常我akm壓得賊(bu)穩【霧】,考試翻車加**只打出來4道(丟人)

看一眼題,第乙個思路是質因數分解,因子個數即為每個質數的指數+1。

首先把盡可能多的質數塞進乙個小根堆裡,

4^n可以化為2^2n,遞推做法,每次為了讓n走一位,把堆頂取出,讓答案乘以這個數,

然後把取出的數乘以他本身塞回小根堆裡.

這樣做的原因是,設ans=p1^c1 + p2^c2 + p3^c3...pn^cn;

2^2n = (c1+1)(c2+1)(c3+1).....(cn+1)

因為左邊的2^2n我們大概可以猜到右邊是(1+1)(3+1)(7+1)(15+1)之類的形式

2^1 =(1+1) 所以我們選最小質因子的2

2^2=(1+1)(1+1)=(3+1) (3+1)意味著乘以2^2,(1+1)(1+1)意味著乘以3, 3更小所以選3.

2^3= (1+1)(1+1)(1+1) = (3+1)(1+1) 依序是乘以5或者乘以2^2,後者更小所以是(1+1)(3+1)

模擬就模擬到這

上面的那個堆存的就是為了讓n走一位可以乘以哪些數,乘完了往回塞乘以它本身的本質是讓存進去的數的指數為2的次方

(1+1)變成(3+1)乘以的就是2^2,(3+1)變成(7+1)乘以的是2^4

正確性得證。

維護優先佇列的時復為n logn,複雜度正確。

考試的時候腦子一抽質數篩只篩到200000,前面的質數指數過大爆掉longlong,到死沒有發現bug。

(結論就是csy無法獲得幸福)

**:

#include#define ll long long

#define p 998244353

using

namespace

std ;

long

long pri[500010],psz,tag[500010

],n;

void

prime()

for(int j=1;j<=psz;j++)

} }priority_queue

long> q;//

我忘記小根堆怎麼寫了,存個負數水一下 = =

中北大學ACM ICPC

size medium 今天週六,整天複習考研來著,今天稍微休息一下,順便把剛做的圖書管理 完善了一下,今天很讓人興奮的是以前的一位學長今天給我提了點意見,下午就過來更新 了,今天主要是更新了一下主頁布局的問題,放大或縮小不會出現布局錯亂的問題。另外,新增了乙個google自定義搜尋框,可以對中北大...

遇強則強 中北大學2023年新生賽

include using namespace std typedef long long ll const ll maxn 1000000 5 ll h maxn ll st maxn ll r maxn l maxn int main ll t 0 for ll i 0 i0 h st t 1 ...

北大ACM暑期培訓感想

部落格從7月17日就沒更新了,18日開始參加了半個月的acm培訓,然後一直刷老師課上講過的題目。智商捉急,現在剩下計算幾何這章不想刷了。收穫很多,鍛鍊了思維,學了幾個演算法,增加了受虐能力,培養了良好的心理素質。打了瀋陽和北京的網路賽,均未打進網路賽。北京賽區有兩道水題,另一位隊友告訴我思路,我拍 ...