zoukankan      html  css  js  c++  java
  • hdoj1864

    平时都是搜索回溯慢,背包快,这道题倒是个特例,背包500ms,搜索0ms。

    Problem : 1864 ( 最大报销额 )     Judge Status : Accepted
    RunId : 2682097    Language : G++    Author : huwenbiao
    Code Render Status : Rendered By HDOJ G++ Code Render Version 0.01 Beta
    /***************************************************************\
    *Author:Hu Wenbiao
    *Created Time: Sun 25 Jul 2010 03:22:16 PM CST
    *File Name: main.cpp
    *Description:01背包
    \***************************************************************/

    //*========================*Head File*========================*\\

    #include<iostream>
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    /*----------------------*Global Variable*----------------------*/
    double
    Q,price,a,b,c;
    int
    f[
    3000010],N,m,cost,V;
    char
    type;
    bool
    flag;

    //*=======================*Main Program*=======================*//
    using namespace std;

    int
    main(){

    //freopen("input","r",stdin);
    while(scanf("%lf%d",&Q,&N)!=EOF&&N){
    V=Q*
    100;
    memset(f,
    0,(1+V)*sizeof(int));
    while
    (N--){
    scanf(
    "%d",&m);
    a=b=c=
    0;
    flag=
    true;
    if
    (m==
    0)continue;
    while
    (m--){
    scanf(
    " %c:%lf",&type,&price);
    if
    (type==
    'A')
    a+=price;
    else if
    (type==
    'B')
    b+=price;
    else if
    (type==
    'C')
    c+=price;
    else

    flag=
    false;
    }

    if
    (a>
    600||b>600||c>600||a+b+c>1000)
    flag=
    false;
    if
    (!flag)continue;
    cost=(a+b+c)*
    100;
    for
    (int v=V;v>=cost;v--)
    f[v]=max(f[v],f[v-cost]+cost);
    }

    double
    ans=f[V];
    printf(
    "%.2lf\n",ans/100);
    }
    }


  • 相关阅读:
    Mysql 基础
    Python Cdn平台文件md5验证
    Linux内存cache/buffer剖析
    wget
    UTV
    智能DNS解析之edns-client-subnet篇
    Python Django
    OpenSSL SNI
    Python 基础(一)
    Python ORM
  • 原文地址:https://www.cnblogs.com/Open_Source/p/1904910.html
Copyright © 2011-2022 走看看