• codeforces/gym/101291/B


    题意:给你n个杠铃的杆子,在给你m个杠铃片,问你能组成多少个重量不同的完整杠铃(杠铃杆子也算一个完整的的杠铃)

    解题思路:dfs直接搜,数据很小,每个杠铃片有三种状态(放杆子左边,放杆子右边,两边都不放),用set存一下,去下重,正好要从小到大序输出

    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #include<cstdio>
    #include<set>
    #define ll long long
    using namespace std;
    int a[20];
    int b[20];
    int n,m;
    int cnt=0;
    set<ll>q;
    void dfs(ll x,ll l,ll r)
    {
        if(x>m)
            return;
        if(l==r)
        {
            q.insert(r+l);
        }
        dfs(x+1,l+a[x+1],r);
        dfs(x+1,l,r+a[x+1]);
        dfs(x+1,l,r);
    }
    int main()
    {
        set<ll>ans;
        cin>>n>>m;
        for(int i=1;i<=n;i++)
            cin>>b[i];
        for(int i=1;i<=m;i++)
            cin>>a[i];
        a[0]=0;
        dfs(0,0,0);
        for(int i=1;i<=n;i++)
        {
            for(set<ll>::iterator it=q.begin();it!=q.end();it++)
            {
                ans.insert(*it+b[i]);
            }
        }
        for(set<ll>::iterator it=ans.begin();it!=ans.end();it++)
        {
            cout<<*it<<endl;
        }
        return 0;
    }
    

      

  • 相关阅读:
    谷歌脸书第三方登录
    初步了解Owin
    select2去掉搜索框
    angularjs教程——自定义指令
    angularjs教程——Dom操作相关指令详解
    http://172.21.87.57:8081/seeyon/
    nce 1,a puma at large
    股池
    永清环保
    出门需要带的东西
  • 原文地址:https://www.cnblogs.com/huangdao/p/8781935.html
Copyright © 2020-2023  润新知