3629: [JLOI2014]聰明的燕姿|約數和|DFS淺析
設M(x)為x的約數和,那麼考慮約數和的求法,約數和顯然是一個積性函數。
設x=pt11?pt22?pt33?......?ptnn
那麼
M(x)=∑c1=0t1pc11?∑c2=0t2pc22?∑c3=0t3pc33?......?∑cn=0tnpcnn
這樣就可以考慮枚舉質因子DFS轉化為子問題繼續求解。
dfs(now,pos,rest)是指搜索枚舉到第
pos個質因子,當前值為
now,然後剩余的因子的和為
rest時的解
搜索時枚舉
≤n?√的質因子,並且單獨判斷
rest?1是否為質數,這樣可以保證搜出來的解沒有重復。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include