洛谷P4397 JLOI2014 聰明的燕姿

2022-02-27 20:28:24 字數 681 閱讀 6557

傳送門

dfs的時候莫名其妙深度太大過不了……然後死活找不出**錯……

首先,約數和這東西是個積性函式,或者直接點的話就是如果$$n=p_1^p_2^p_3^…p_m^$$

那麼$n$的約數和就等於$$s=\begin \prod_^m \end\begin \sum_^ ^j \end$$

然後因為最近剛學過等比數列求和公式我就把這東西往那方面去想了……然後一直爆零……

實際上只要爆搜就可以了……我太蠢了……

記得dfs的時候如果搜到$s-1$是質數的之後直接乘上去就好了,不用繼續搜

1

//minamoto

2 #include3

#define ll long long

4using

namespace

std;

5const

int n=1e5;

6int p[n+5],vis[n+5],m,st[n<<2

],top,n,q;

7void

init()14}

15}16bool check(int

x)21

void dfs(ll now,int

x,ll y)29}

30int

main()

40return0;

41 }

題解 P4397 JLOI2014 聰明的燕姿

description 給出s,找出所有約束和為s的數 sample input sample output 3 20 26 41 數論普遍我都沒思路。乙個白天就調了這麼一道題,不如刷刷矩乘愉悅一下。考慮兩個定理 唯一分解定理 沒有鳥用,好像基本都知道 s prod p i 因數和定理 x prod...

洛谷P3258 JLOI 2014松鼠的新家

題目 樹上差分 樹上點差分,注意會出現路徑端點多記錄的情況,這時需要在最後輸出的時候輸出子樹的差分陣列的和 1,而不是在處理原資料的時候減1。並且a n 不需要糖果,最後也減去就行。include define n 1001011 using namespace std struct edg e n...

洛谷P3258 JLOI2014 松鼠的新家

松鼠的新家是一棵樹,前幾天剛剛裝修了新家,新家有n個房間,並且有n 1根樹枝連線,每個房間都可以相互到達,且倆個房間之間的路線都是唯一的。天哪,他居然真的住在 樹 上。松鼠想邀請 前來參觀,並且還指定乙份參觀指南,他希望 能夠按照他的指南順序,先去a1,再去a2,最後到an,去參觀新家。可是這樣會導...