題解 P4397 JLOI2014 聰明的燕姿

2022-06-20 06:18:14 字數 1189 閱讀 5859

\(description:\)

給出s,找出所有約束和為s的數

\(sample\)

\(input:\)

\(sample\)

\(output:\)

3

20 26 41

數論普遍我都沒思路。。。

乙個白天就調了這麼一道題,不如刷刷矩乘愉悅一下。。。

考慮兩個定理:

唯一分解定理(沒有鳥用,好像基本都知道

\(s=\prod_^p_i^\)

因數和定理:

\(x=\prod_^(\sum_^ p_i^)\)

這題其實就是想讓從x推導到p,c。

考慮搜尋,每次列舉每個質數和他的次數

傳入三個參: 當前還要分解的數,分解到第幾個質數,當前數是多少。

一般只要篩到\(\sqrt x\)就可以了

但要特別注意因數有乙個大於根號x,那就要特判一下,如果剩下還要分解的數減1是質數且大於當前要用的質數,那也得加入答案。

#include#define int long long

using namespace std;

int n,cnt,num,opt;

const int maxn=50000;

const int maxm=100000;

int a=;

int v[maxm+5],p[maxn+5];

int ans[maxn+5];

inline int power(int a,int b,int p)

inline bool mr(int n)

return 1;

}inline void dfs(int now,int k,int s)

if(mr(now-1) && now>p[k]) ans[++cnt]=s*(now-1);

for(int i=k;p[i]*p[i]<=now && i<=num;++i)

}signed main()

}while(~scanf("%lld",&n))

return 0;

}

洛谷P4397 JLOI2014 聰明的燕姿

傳送門 dfs的時候莫名其妙深度太大過不了 然後死活找不出 錯 首先,約數和這東西是個積性函式,或者直接點的話就是如果 n p 1 p 2 p 3 p m 那麼 n 的約數和就等於 s begin prod m end begin sum j end 然後因為最近剛學過等比數列求和公式我就把這東西往...

P3258 JLOI2014 松鼠的新家

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

P3258 JLOI2014 松鼠的新家

傳送門 此題樹剖可過 然而可以樹上差分為什麼要樹剖.對於一條路徑 a,b 只要把 val a val b val lca a,b val fa lca a,b 那麼求每個點的經過次數就求一下子樹 val 的和就好了 但是要注意,每一條路徑的終點是下一條路徑的起點,那些點會被多算一次 所以求完子樹和以...