搜尋。我們知道:
如果$n=\prod\limits_^p_^}$,其中$p_$為質數,
那麼n的約數和為$\prod\limits_^(p_^+p_^+...+p_^})$
如$36=2^*3^$,那麼$36$的約數和為$(2^+2^+2^)*(3^+3^+3^)=91$
我們搜尋找到所有合法最小的$p_$和它次數$k_$,然後dfs進入下一次搜尋中。
如果發現當前的約數和為乙個質數+1,我們可以加到答案去。
覺得答案的個數很少。
#include#includeview code#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//#include適用於cf,uoj,但不適用於poj
using
namespace
std;
typedef
long
long
ll;typedef
double
db;typedef pair
pii;
typedef complex
cp;#define mmst(a,v) memset(a,v,sizeof(a))
#define mmcy(a,b) memcpy(a,b,sizeof(a))
#define fill(a,l,r,v) fill(a+l,a+r+1,v)
#define re(i,a,b) for(i=(a);i<=(b);i++)
#define red(i,a,b) for(i=(a);i>=(b);i--)
#define ire(i,x) for(typedef(x.begin()) i=x.begin();i!=x.end();i++)
#define fi first
#define se second
#define m_p(a,b) make_pair(a,b)
#define p_b(a) push_back(a)
#define sf scanf
#define pf printf
#define two(k) (1<
inline t sqr(t x)
template
inline void upmin(t &t,t tmp)
template
inline void upmax(t &t,t tmp)
const db eps=1e-9
;inline
int sgn(db x)
const db pi=acos(-1.0
);inline
intgint()
for(;z!=eof && isdigit(z);res=res*10+z-'
0',z=getchar());
return (neg)?-res:res;
}inline ll gll()
for(;z!=eof && isdigit(z);res=res*10+z-'
0',z=getchar());
return (neg)?-res:res;
}const
int maxn=100000
;int n=maxn;
int flag[maxn+100
];int cnt,p[maxn+100
];int
s;int ge,out[maxn+1000
];inline
int isprime(int
v)
inline
void dfs(int last,int now,int
tot)
if(isprime(tot-1) && tot-1>p[last])
out[++ge]=now*(tot-1
);
for(int i=last+1;i<=cnt;i++)
for(int j=p[i],k=p[i]+1;k<=tot;j=j*p[i],k+=j)
if(tot%k==0
) dfs(i,now*j,tot/k);
}int
main()
}while(sf("
%d\n
",&s)!=eof)
return0;
}
BZOJ3629 JLOI2014 聰明的燕姿
標籤 線性篩,dfs description 陰天傍晚車窗外 未來有乙個人在等待 向左向右向前看 愛要拐幾個彎才來 我遇見誰會有怎樣的對白 我等的人他在多遠的未來 我聽見風來自地鐵和人海 我排著隊拿著愛的號碼牌 城市中人們總是拿著號碼牌,不停尋找,不斷匹配,可是誰也不知道自己等的那個人是誰。可是燕姿...
Bzoj3629 Jloi2014聰明的燕姿
蒟蒻不知道約數和公式。qaq 然後自己手玩出來了,但是沒去想dfs 反正這篇博文也只是記錄一下自己的愚蠢,就貼的是popoqqq神犇的 順便約數和公式 設n p1 k1 p2 k2.pn kn d sum n p1 0 p1 1 p1 k1 p2 0 p2 1 p2 k2 pn 0 pn 1 pn ...
bzoj3629 JLOI2014 聰明的燕姿
陰天傍晚車窗外 未來有乙個人在等待 向左向右向前看 愛要拐幾個彎才來 我遇見誰會有怎樣的對白 我等的人他在多遠的未來 我聽見風來自地鐵和人海 我排著隊拿著愛的號碼牌 城市中人們總是拿著號碼牌,不停尋找,不斷匹配,可是誰也不知道自己等的那個人是誰。可是燕姿不一樣,燕姿知道自己等的人是誰,因為燕姿數學學...