`

zoj 1558 背包

    博客分类:
  • acm
阅读更多
#include <bits/stdc++.h>
using namespace std;
int num[8],dp[10000+10];
int cmp(int x,int y)
{
    return x>y;
}
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        for(int i=1;i<7;i++)
            scanf("%d",&num[i]);
        sort(num+1,num+7,cmp);
         int sum = num[1]*100+100;
        //memset(dp,0,sizeof(dp));
        for(int i=1;i<=sum;i++)
            dp[i]=i;
        for(int k=1;k<=6;k++)
        {
            for(int j=num[k];j<=sum;j++)
            {
               if(dp[j]>dp[j-num[k]]+1)
                dp[j] = dp[j-num[k]]+1;
            }
        }
        for(int k=1;k<=6;k++)
        {
            for(int j=sum-num[k];j>=0;j--)
            {
                dp[j] = min(dp[j+num[k]]+1,dp[j]);
            }
        }
        sum = 0;int maxx = 1;
        for(int i=1;i<=100;i++)
        {
            sum+=dp[i];
            maxx = max(maxx,dp[i]);
        }
        printf("%d.%d %d\n",sum/100,sum%100,maxx);
    }
    return 0;
}
分享到:
评论

相关推荐

    zoj 源码700题

    3. **算法与数据结构**:700题涵盖的范围广泛,涉及基本的排序算法(如冒泡、快速、归并排序),查找算法(如二分查找),以及高级算法如动态规划(如斐波那契数列、背包问题)、图论(如最短路径、最小生成树)、...

    ZOJ题目答案源码

    例如,动态规划在解决背包问题、最长公共子序列、最小编辑距离等问题上有着广泛的应用;图论则涉及到最短路径算法(Dijkstra算法、Floyd-Warshall算法)、最小生成树(Prim算法、Kruskal算法)等。 此外,源码中...

    ZOJ月赛 题解 (ZOJ Monthly, August 2014)

    3. **动态规划(DP)**:动态规划是一种强大的问题解决方法,适用于解决最优决策问题,如背包问题、最长公共子序列、矩阵链乘法等。解题报告中的DP思路通常包括状态定义、状态转移方程和边界条件。 4. **贪心算法**...

    zoj.zip_zoj

    4. **动态规划**:背包问题、最长公共子序列、最短路径、最长上升子序列等,动态规划能有效地解决具有重叠子问题和最优子结构的复杂问题。 5. **图论**:最小生成树(Prim 或 Kruskal 算法)、最短路径(Floyd-...

    zoj题目简单归类zoj题目简单归类

    题目要求找出一个立方数和一个四面体数的组合,这实际上是一个背包问题的变形。解决策略是使用集合来存储所有可能的组合,从而避免重复计算。复杂度分析显示,这种方法可以在合理的时间内解决问题。 #### #1713 ...

    zoj代码集合

    DP在解决复杂问题时有着广泛的应用,例如背包问题、最长公共子序列、最短路径等。代码集可能会包含各种类型的DP模板和实例解析。 3. **贪心算法**:贪心策略通常用于求解局部最优解的问题,如活动选择问题、霍夫曼...

    pku hdu zoj题目分类

    "acm动态规划总结.doc"可能是对ACM竞赛中涉及的动态规划问题的总结,包括基础的背包问题、区间问题、状态转移方程等。 2. **Pku题目分类及算法分类**: "pku题目分类及算法分类.doc"很可能是按照北京大学OJ(PKU ...

    zoj-cpp.zip_zoj

    在编程竞赛和算法设计中,动态规划经常被用来解决如背包问题、最长公共子序列、最短路径等经典问题。动态规划的核心思想是记忆化,避免重复计算,以提高效率。 在学习和使用这个压缩包时,初学者可以从以下几个方面...

    zoj解题分类详细版

    例如,1013题可能涉及背包问题,1108题可能是最长公共子序列问题。通过这些动态规划题目,学习者可以深入理解如何利用记忆化搜索减少重复计算,以及如何构建状态空间来解决问题。 总的来说,ZOJ的解题分类为学习者...

    ZOJ全部题目分类(分得很细哦)

    - **1013**: 动态规划题目可能包括简单的背包问题,例如0/1背包。 - **1245**: 这类题目可能涉及更复杂的序列问题,如最长递增子序列。 - **1446**: 动态规划还可以应用于字符串处理领域,如编辑距离问题。 **学习...

    算法设计与分析实验指导

    1. 0-1背包问题 2. 装载问题 3. 堡垒问题(ZOJ1002) 4. *翻硬币问题 5. 8皇后问题 6. 素数环问题 7. 迷宫问题 8. *农场灌溉问题(ZOJ2412) 9. *求图像的周长(ZOJ1047) 10. *骨牌矩阵 11. *字母转换(ZOJ1003) ...

    浙大acm与答案

    3. **动态规划**:通过构建状态转移方程来解决最优化问题,如斐波那契数列、背包问题、最长公共子序列等。 4. **图论算法**:包括最小生成树(Prim、Kruskal)、最短路径(Dijkstra、Floyd-Warshall)、网络流等。 ...

    acm-zju.rar

    3. **动态规划**:背包问题、最长公共子序列、最短路径问题等。 4. **图论算法**:最小生成树(Prim、Kruskal)、最短路径(Dijkstra、Floyd-Warshall)、拓扑排序等。 5. **数学算法**:大整数运算、模运算、组合...

    zju动态规划试题选集

    动态规划是一种重要的算法思想,广泛应用于计算机科学,特别是在解决复杂问题优化方面,如最短路径、背包问题、矩阵链乘法等。浙江大学(Zhejiang University,简称ZJU)的在线判题系统ZOJ(Zhejiang Online Judge)...

    ACM.rar_ACM 绠楁硶_HDU1010_hdu 18

    这可能是一个组合优化问题,例如0-1背包问题的变种。在原报告中,作者可能没有选择动态规划或贪心策略,而是采用搜索算法,如深度优先搜索(DFS)或广度优先搜索(BFS),甚至可能结合回溯法来寻找解。这种创新性地...

    浙大acm题解

    4. **动态规划**:这是一种解决具有重叠子问题和最优子结构问题的方法,如斐波那契数列、背包问题、最长公共子序列等。 5. **贪心策略**:通过每次选择当前最优解来逐步求解整个问题,例如霍夫曼编码、活动安排问题...

    ACM程序设计竞赛例题.docx

    3. **堡垒问题(ZOJ1002)**: 堡垒问题是一个二维空间布局的问题,目标是在满足特定条件的情况下最大化堡垒的数量。在这里,堡垒不能建在墙的位置,且两个堡垒不能相互射击。程序采用深度优先搜索(DFS)的方法,...

    ACM超强代码,不同的解法

    "poj"和"zoj"是两个在线判题系统,Program Online Judge(POJ)和Zhejiang Online Judge(ZOJ),它们提供大量练习题目供参赛者训练。在这些平台上,你可以提交代码并即时获取运行结果,这对于检验代码的正确性和...

Global site tag (gtag.js) - Google Analytics