陰天傍晚車窗外
未來有乙個人在等待
向左向右向前看
愛要拐幾個彎才來
我遇見誰會有怎樣的對白
我等的人他在多遠的未來
我聽見風來自地鐵和人海
我排著隊拿著愛的號碼牌
城市中人們總是拿著號碼牌,不停尋找,不斷匹配,可是誰也不知道自己等的那個人是誰。可是燕姿不一樣,燕姿知道自己等的人是誰,因為燕姿數學學得好!燕姿發現了乙個神奇的演算法:假設自己的號碼牌上寫著數字s,那麼自己等的人手上的號碼牌數字的所有正約數之和必定等於s。
所以燕姿總是拿著號碼牌在地鐵和人海找數字(喂!這樣真的靠譜嗎)可是她忙著唱《綠光》,想拜託你寫乙個程式能夠快速地找到所有自己等的人。
輸入包含k組資料(k<=100)
對於每組資料,輸出有兩行,第一行包含乙個整數m,表示有m個等的人,第二行包含相應的m個數,表示所有等的人的號碼牌。注意:你輸出的號碼牌必須按照公升序排列。
42
3對於100%的資料,有s<=2*10*920 26 41
題解
一道顯而易見的數學題,顯而易見地我不會做。因為根本這個正解要用到的約數定理、約數和定理。唯一分解定理我都沒學過,如果知道這些結論的話有沒有推出答案的數學能力也未必。唯一分解定理:
任何乙個大於1的自然數n,都可以唯一分解成有限個質數的乘積n=p1^a1*p2^a2*…*pn^an,這裡p1
#include#include#include
#include
#define ll long long
using
namespace
std;
const
int sj=100100
;ll s,m,ps,p[
10000
],res[sj],ge;
bool fp[sj]=;
void
xxs()
for(int j=1;j<=ps&&i*p[j]5;j++)
}}int
pss(ll x)
void dfs(int
l,ll ji,ll yu)
long
long
temp,f;
if((yu-1)>p[l]&&pss(yu-1
))
for(int i=l+1;p[i]*p[i]<=yu;i++)
}}void
cz()
else
printf(
"0\n");
}}int
main()
題解 P4397 JLOI2014 聰明的燕姿
description 給出s,找出所有約束和為s的數 sample input sample output 3 20 26 41 數論普遍我都沒思路。乙個白天就調了這麼一道題,不如刷刷矩乘愉悅一下。考慮兩個定理 唯一分解定理 沒有鳥用,好像基本都知道 s prod p i 因數和定理 x prod...
洛谷P4397 JLOI2014 聰明的燕姿
傳送門 dfs的時候莫名其妙深度太大過不了 然後死活找不出 錯 首先,約數和這東西是個積性函式,或者直接點的話就是如果 n p 1 p 2 p 3 p m 那麼 n 的約數和就等於 s begin prod m end begin sum j end 然後因為最近剛學過等比數列求和公式我就把這東西往...
JLOI2014 松鼠的新家
裸的 樹鏈剖分 然而 並不用線段樹 求x,y的lca 後 在 x上標記加一,y上標記加一 lca標記減一,fa lca 標記減一 include int n int shunxv 300005 int to 600005 next 600005 head 600005 cnt void add in...