zoukankan      html  css  js  c++  java
  • 幸运的袋子

    参考:https://www.cnblogs.com/Peyton-Li/p/7587372.html

    发现满足条件必须存在1,然后遍历每种情况,累加。

    // Study.cpp: 定义控制台应用程序的入口点。
    //
    #include "stdafx.h"
    #include <iostream>
    #include <vector>
    #include <unordered_map>
    #include <unordered_set>
    #include <queue>
    #include <string>
    #include <algorithm>
    using namespace std;
    
    int dfs(vector<int> &nums, int k,int sum,int product)
    {
        int result = 0;
        int n = nums.size();
        if (k >= n )
            return 0;
        sum += nums[k];
        product *= nums[k];
        if (sum < product)
            return 0;
        if (sum > product)
            result++;
        for (int i = k+1; i < n; i++)
        {
            result += dfs(nums, i, sum, product);
            while (i < n - 1 && nums[i] == nums[i + 1])
                i++;
        }
        return result;
    }
    int main()
    {
        int n;
        cin >> n;
        vector<int> nums;
        int tmp;
        for (int i = 0; i < n; i++)
        {
            cin >> tmp;
            nums.push_back(tmp);
        }
        sort(nums.begin(), nums.end());
        cout << dfs(nums, 0, 0, 1);
        system("pause");
        return 0;
    }
  • 相关阅读:
    hiho150周
    hdu1011
    hiho1055/hdu1561
    bat脚本启动exe并打开文件后退出 + 中文乱码
    hiho1080
    hiho1079
    java异常处理——基础篇
    找不到要编译的文件——path环境变量配置
    MVC——studying
    轻松搞定EasyUI
  • 原文地址:https://www.cnblogs.com/Oscar67/p/9540494.html
Copyright © 2011-2022 走看看