zoukankan      html  css  js  c++  java
  • [Jobdu] 题目1531:货币面值

    题目描述:

    小虎是游戏中的一个国王,在他管理的国家中发行了很多不同面额的纸币,用这些纸币进行任意的组合可以在游戏中购买各种装备来提升自己。有一天,他突然很想知道这些纸币的组合不能表示的最小面额是多少,请聪明的你来帮助小虎来解决这个财政问题吧。

    输入:

    输入包含多个测试用例,每组测试用例的第一行输入一个整数N(N<=100)表示流通的纸币面额数量,第二行是N个纸币的具体表示面额,取值[1,100]。

    输出:

    对于每组测试用例,输出一个整数,表示已经发行的所有纸币都不能表示的最小面额(已经发行的每个纸币面额最多只能使用一次,但面值可能有重复)。

    样例输入:
    5
    1 2 3 9 100
    5
    1 2 4 9 100
    5
    1 2 4 7 100
    样例输出:
    7
    8
    15

    背包问题,但是还可以优化。先这样吧。

     1 #include <iostream>
     2 #include <cstring>
     3 #include <cstdio>
     4 #include <algorithm>
     5 using namespace std;
     6  
     7 int n;
     8 int a[100];
     9 bool dp[10001];
    10  
    11 void getRes() {
    12     memset(dp, false, 10001);
    13     dp[0] = true;
    14     sort(a, a + n);
    15     for (int i = 0; i < n; ++i) {
    16         for (int j = 10001 - a[i]; j >= 0; --j) {
    17             if (dp[j])
    18                 dp[j + a[i]] = true;
    19         }
    20     }
    21     for (int i = 0; i < 10001; ++i) {
    22         if (!dp[i]) {
    23             cout << i << endl;
    24             break;
    25         }
    26     }
    27  
    28 }
    29  
    30 int main() {
    31     while (cin >> n) {
    32         for (int i = 0; i < n; ++i) {
    33             cin >> a[i];
    34         }
    35         getRes();
    36     }
    37  
    38     return 0;
    39 }
    40  
    41 /**************************************************************
    42     Problem: 1531
    43     User: hupo250
    44     Language: C++
    45     Result: Accepted
    46     Time:70 ms
    47     Memory:1528 kb
    48 ****************************************************************/
  • 相关阅读:
    net-speeder 安装
    CentOS 5/6 下添加epel源
    让进程在后台可靠运行的几种方法
    学习supervisor
    SQLAlchemy tutorial
    Ubuntu包管理工具整理
    Photoshop保存文件时的选项
    python反射
    python包管理(distutils、easy_install、pip、setup.py/requirements.txt、wheel)
    python 一句话输出26个英文字母
  • 原文地址:https://www.cnblogs.com/easonliu/p/3899195.html
Copyright © 2011-2022 走看看