zoukankan      html  css  js  c++  java
  • 小木棍数据加强版题解——剪枝

    被强大(坑爹)的数据卡了

    #include<bits/stdc++.h>
    #define maxx 100
    using namespace std;
    int len,n,k,le;
    int a[maxx],v[maxx];
    bool dfs(int cab,int m,int last){
        if(m>k)return true;
        if(cab==len)return dfs(0,m+1,1);
        int f=0;
        for(int i=last;i<=n;i++){
            if(v[i]||f==a[i]||cab+a[i]>len)continue;
            v[i]=1;
            if(dfs(cab+a[i],m,i+1))return true;
            v[i]=0;
            f=a[i];
            if(cab==0||cab+a[i]==len)return false;
        }
        return false;
    }
    int main(){
    //    freopen("testdata.in","r",stdin);
    //    freopen("testdatas.out","w",stdout);
        while(cin>>n&&n){
            memset(a,0,sizeof(a));
                int Sum=0;
            for(int i=1;i<=n;i++){
                scanf("%d",&a[i]);
                if(a[i]>50)i--,n--;
                if(a[i+1]<=50)Sum+=a[i];
            }
            sort(a+1,a+n+1);
            reverse(a+1,a+n+1);
            for(len=a[1];len<=Sum;len++){
                if(Sum%len)continue;
                k=Sum/len;memset(v,0,sizeof(v));
                if(dfs(0,1,1))break;
            }
            cout<<len<<endl;
        }
        return 0;
    }

    。。。

    一蓑烟雨任平生
  • 相关阅读:
    阅读笔记
    学习小记
    networkx学习笔记
    ORM查询简化
    redis等缓存
    redis相关缓存知识
    Centos7网络配置
    redis安装详细
    redis安装详细
    mobaxterm使用手册
  • 原文地址:https://www.cnblogs.com/wyb-----520/p/10121729.html
Copyright © 2011-2022 走看看