欧拉计划部分解题报告(31-35)

031 Coin sums(开启传送门)。

题意:问你, 200 200 ,由任意多个 1,2,5,10,20,50,100,200 1 , 2 , 5 , 10 , 20 , 50 , 100 , 200 构成的方案数。

分析:简单深搜,注意从大到小深搜,会稍微快一点。

代码:

#include 
using namespace std;
int ans = 0;
int num[7] = {200,100,50,20,10,5,2};
void dfs(int ind,int now){
    if(ind==7) {
        ans++;
        return ;
    }
    for(int i = 0;i*num[ind]<=now;i++){
        dfs(ind+1,now-i*num[ind]);
    }
}
int main() {
//    freopen("in.txt","r",stdin);
    dfs(0,200);
    cout<return 0;
}

你可能感兴趣的:(欧拉计划,数学)