杭电1557

来源:互联网 发布:js 日期转时间戳 编辑:程序博客网 时间:2024/05/17 20:23

上链接:杭电1557


题目大意:

      根据一个队的票算出其权力值(什么鬼,还是看题去吧,反正中文的)

      DFS


贴代码:

#include <iostream>using namespace std;int sum;int count, j, m, minV, best;int a[105], b[105], flag[105];void DFS(int k, int p, int c){    if(k > p)    {        if(minV+c>sum && minV<=sum)            count++;        if(count>=best)            best = count;        return ;    }    DFS(k+1, p, c);    minV = minV + b[k];    flag[k] = 1;    DFS(k+1, p, c);    minV = minV - b[k];    flag[k] = 0;}int main(){    int i,k,n;    cin>>n;    while(n--)    {        sum=0;        cin>>m;        for(i=1;i<=m;i++)        {            cin>>a[i];            sum = sum + a[i];            b[i] = 0;            flag[i] = 0;        }        sum = sum/2;        for(i=1; i<=m; i++)        {            count = 0;            best = -1;            flag[i] = 1;            minV = 0;            j = 1;            for(k=1; k<=m; k++)            {                if(flag[k] == 0)                {                    b[j] = a[k];                    j++;                }            }            DFS(1, j-1, a[i]);            if(i<m)                cout<<best<<" ";            else                cout<<best;        }        cout<<endl;    }        return 0;}


我看了一下网上有个母函数,有空去看看


0 0
原创粉丝点击