\(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 的和就好了 但是要注意,每一條路徑的終點是下一條路徑的起點,那些點會被多算一次 所以求完子樹和以...