zoukankan      html  css  js  c++  java
  • poj 1252 Euro Efficiency (完全背包)

    http://poj.org/problem?id=1252

    先计算6种钱币相加的情况,有f[j] = min(f[j], f[j-data[i]]+1) ;

    然后计算找零的情况,有f[j] = min(f[j], f[j+data[i]]+1) ;

    计算的上限要比100大,因为有找零的情况,但是要大多少不太好确定。

    code:

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std ;
    const int Max = 2500 ;//..
    int data[6], f[Max] ;
    int main(){
        int t, n, i, j, sum, max ;
        scanf("%d", &t) ;
        while(t--){
            for(i=0; i<6; i++)
                scanf("%d", &data[i]) ;
            f[0] = 0 ;
            for(i=1; i<Max; i++)
                f[i] = 2000000 ;
            for(i=0; i<6; i++)      //相加
                for(j=data[i]; j<Max; j++)
                    f[j] = min(f[j], f[j-data[i]]+1) ;
            for(i=0; i<6; i++)      //相减
                for(j=Max-data[i]; j>=1; j--)
                    f[j] = min(f[j], f[j+data[i]]+1) ;
            sum = max = 0 ;
            for(i=1; i<=100; i++){
                sum += f[i] ;
                if(f[i]>max)    max = f[i] ;
            }
            printf("%.2lf %d\n", (double)sum/100, max) ;
        }
        return 0 ;} 
  • 相关阅读:
    GridView
    BaseAdapter
    ArrayAdapter,SimpleAdapter
    消息机制,Handler
    进度条对话框
    随机二选一
    (二十五)WebDriver API之上传文件
    (二十四)WebDriver API之警告框处理
    linux常用命令大全
    (二十三)WebDriver API之多窗口切换
  • 原文地址:https://www.cnblogs.com/xiaolongchase/p/2446726.html
Copyright © 2011-2022 走看看