10分只过最后一点
查看原帖
10分只过最后一点
267517
Mikemao666楼主2020/5/16 17:43

这个是dfs

#include<bits/stdc++.h>
using namespace std;
int k,t[10001],a[101],n,mini=2e9;
inline bool cmp(int a,int b){
    return a>b;
}
inline void dfs(int q,int tot) {
    if(tot>=mini)return;
    if(q>n) {
        mini=min(mini,tot);
        return;
    }
    for(int i=1; i<=k; ++i) {
        a[i]+=t[q];
        dfs(q+1,max(tot,a[i]));
        /*if(tot<mini)
            mini=tot;*/
        a[i]-=t[q];
    }
}
int main() {
    cin>>n>>k;
    for(register int i=1; i<=n; ++i) {
        cin>>t[i];
    }
    stable_sort(t+1,t+n+1,cmp);
    dfs(1,0);
    printf("%d",mini);
    return 0;
}
2020/5/16 17:43
加载中...