首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

标题1025:最大报销额 (dfs深度优先搜索)

2013-02-20 
题目1025:最大报销额 (dfs深度优先搜索)http://ac.jobdu.com/problem.php?pid1025题目描述:2007年浙江大

题目1025:最大报销额 (dfs深度优先搜索)

http://ac.jobdu.com/problem.php?pid=1025

题目描述:
2007年浙江大学计算机及软件工程研究生机试真题



#include <stdio.h>double data[30];int len;double ans,q; void dfs(int k,double sum){    if(k==len)    {        if(sum>ans)            ans=sum;        return;    }    dfs(k+1,sum);    if(sum+data[k]<=q)        dfs(k+1,sum+data[k]);} int main(){    int n,m;    char cc;    while(scanf("%lf %d",&q,&n)&&n!=0)    {        len=0;ans=-1;        for(int i=0;i<n;i++)        {            scanf("%d",&m);            double a=0,b=0,c=0,temp,sum=0;            int flag=1;            while(m--)            {                scanf(" %c:%lf",&cc,&temp);                if(cc=='A') a+=temp;                else if(cc=='B') b+=temp;                else if(cc=='C') c+=temp;                else    flag=0;                sum+=temp;            }            if(flag&&sum<=1000&&a<=600&&b<=600&&c<=600)                data[len++]=sum;         }        dfs(0,0);        printf("%.2f\n",ans);    }} /**************************************************************    Problem: 1025    User: 从此醉    Language: C    Result: Accepted    Time:10 ms    Memory:908 kb****************************************************************/


1楼AC__y58分钟前
就是一个01背包吧

热点排行