猴猴最愛吃香蕉了。每天猴猴出門都會摘很多很多的香蕉,每個香蕉都有乙個甜度,猴猴不一定要把所有的香蕉都吃掉,猴猴每天都有乙個心情值k,猴猴希望當天吃的香蕉滿足這麼乙個條件,這些香蕉的甜度乘積恰好等於k,但是猴猴並不知道有多少種方法,於是猴猴把這個問題交給你。
揹包,依題目可得:只有k
kk的約數才能作為轉移,所以我們可以篩出來k
kk的約數
列舉香蕉的甜度a
aa和心情值b
bb(都是k
kk的約數),則有轉移方程f[b
]+=f
[b/a
]f[b]+=f[b/a]
f[b]+=
f[b/
a]若當前香蕉的甜度和心情值相等,f[a
]+
+f[a]++
f[a]++
即可防止浪費空間,用了map
mapma
p。
#include
#define m 1000000007
using
namespace std;
map<
int,
int> f;
int t,n,k,cnt;
int a[
1000005
],b[
1005];
intmain()
sort
(a+1
,a+1
+cnt)
;for
(int i=
1;i<=n;i++
)scanf
("%d"
,&b[i]);
for(
int i=
1;i<=n;i++)}
cout<]<}}
猴猴吃香蕉(dp)
題目描述 猴猴最愛吃香蕉了。每天猴猴出門都會摘很多很多的香蕉,每個香蕉都有乙個甜度,猴猴不一定要把所有的香蕉都吃掉,猴猴每天都有乙個心情值k,猴猴希望當天吃的香蕉滿足這麼乙個條件,這些香蕉的甜度乘積恰好等於k,但是猴猴並不知道有多少種方法,於是猴猴把這個問題交給你。輸入 第一行乙個數d,表示有d天。...
問題 B 猴猴吃香蕉
題目描述 猴猴最愛吃香蕉了。每天猴猴出門都會摘很多很多的香蕉,每個香蕉都有乙個甜度,猴猴不一定要把所有的香蕉都吃掉,猴猴每天都有乙個心情值k,猴猴希望當天吃的香蕉滿足這麼乙個條件,這些香蕉的甜度乘積恰好等於k,但是猴猴並不知道有多少種方法,於是猴猴把這個問題交給你。輸入第一行乙個數d,表示有d天。接...
51nod 猴猴吃香蕉 揹包
猴猴最愛吃香蕉了。每天猴猴出門都會摘很多很多的香蕉,每個香蕉都有乙個甜度,猴猴不一定要把所有的香蕉都吃掉,猴猴每天都有乙個心情值k,猴猴希望當天吃的香蕉滿足這麼乙個條件,這些香蕉的甜度乘積恰好等於k,但是猴猴並不知道有多少種方法,於是猴猴把這個問題交給你。m 1 08 m leq 10 8 m 10...