`
hunix
  • 浏览: 21796 次
  • 性别: Icon_minigender_1
  • 来自: 孝感
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

ACM经典算法

阅读更多
#include <iostream>
#include <algorithm>
using namespace std;

struct cube
{
    int l;
    int w;
    int h;
    int sum;
};
cube a[100];

bool cmp(cube i,cube j)
{
    return i.l * i.w >j.l * j.w;
}
bool isSuit(cube i,cube j)
{
    return i.l<j.l&&i.w<j.w || i.w<j.l&&i.l<j.w;
}
int main()
{
    int n,l,w,h;
    int cnt=1;
    while(cin>>n&&n!=0)
    {
        memset(a,0,sizeof(a));
        for(int i=0;i<3*n;i++)
        {
            cin>>l>>w>>h;
            a[i].l = l;a[i].w = w;a[i].h = h;i++;
            a[i].l = w;a[i].w = h;a[i].h = l;i++;
            a[i].l = h;a[i].w = l;a[i].h = w;
        }
        sort(a,a+3*n,cmp);
     
        a[0].sum = a[0].h;
        for(int i=1;i<3*n;i++)
        {
            int tempMax=0;//注意,这里必须为0
            for(int j=0;j<i;j++)
            {
                if(a[j].sum>tempMax&&isSuit(a[i],a[j]))
                {
                    tempMax = a[j].sum;
                }
            }
            a[i].sum = tempMax + a[i].h;
        }
        int temp = -1;
        for(int i=0;i<3*n;i++)
        {
            if(a[i].sum>temp)
            {
                temp = a[i].sum;
            }
        }
        printf("Case %d: maximum height = %d\n",cnt,temp);
        cnt++;
    }
    return 0;
}
分享到:
评论

相关推荐

    ACM 经典算法代码库(ACM 北大)

    【ACM经典算法代码库(ACM北大)】是一份极具价值的学习资源,它涵盖了ACM竞赛中常见的算法和问题解决策略。ACM,全称是国际大学生程序设计竞赛(International Collegiate Programming Contest),是全球范围内的一项...

    ACM经典算法!ACM经典算法!好东西 超好!贪心

    动态规划是一种用于解决多阶段决策过程最优化的数学方法,起源于20世纪50年代由美国数学家R.E. Bellman提出的最优化原理。...理解和掌握动态规划的概念及其应用,对于在ACM竞赛和其他算法挑战中取得好成绩至关重要。

    ACM经典算法集锦

    ### ACM经典算法集锦 #### 一、Kruskal 最小生成树算法 **知识点概述:** Kruskal算法是一种用于寻找加权无向图中最小生成树的算法。该算法通过逐步添加边来构建最小生成树,确保每次添加的边都不会形成环。 **...

    ACM经典算法[参照].pdf

    《ACM经典算法详解》 ACM竞赛中的经典算法是编程竞赛中不可或缺的一部分,它们涉及到计算机科学中的核心问题,如递归、动态规划、贪心算法等。本篇主要聚焦于递归算法的讲解和应用。 一、递归算法基础 递归是一种...

    ACM经典算法(对初学者很有用)

    经典算法(对初学者很有用)经典算法(对初学者很有用)经典算法(对初学者很有用)经典算法(对初学者很有用)经典算法(对初学者很有用)经典算法(对初学者很有用)经典算法(对初学者很有用)经典算法(对初学者...

    2016年ACM常用算法总结

    1. **经典算法集合**:这一节可能讲述了一些基础且在ACM竞赛中常用的算法,这些算法是解决各种问题的基础。 2. **动态规划(DP)**:动态规划是一种在数学、管理科学、计算机科学、经济学和生物信息学等领域中用于...

    ACM常用算法(重要)

    ACM常用算法(重要)ACM常用算法(重要)ACM常用算法(重要)ACM常用算法(重要)ACM常用算法(重要)ACM常用算法(重要)ACM常用算法(重要)ACM常用算法(重要)ACM常用算法(重要)

    ACM.rar_ACM_ACM算法

    ACM算法是这类竞赛中的核心内容,涉及了广泛的计算机科学理论和实践知识。这个名为"ACM.rar"的压缩包很可能包含了与ACM竞赛相关的经典算法实例、解决方案以及相关的学习资料。 ACM算法通常涵盖以下几个关键类别: ...

    经典ACM算法

    从给定的文件信息来看,主要讨论的是与ACM算法相关的知识,具体涉及了计数排序(Counting Sort)和快速排序(Quick Sort)两种经典排序算法,以及一些与算法性能分析相关的内容。下面将对这些知识点进行详细的阐述。...

    用于 ACM 的算法代码模板.zip

    用于 ACM 的算法代码模板.zip用于 ACM 的算法代码模板.zip用于 ACM 的算法代码模板.zip用于 ACM 的算法代码模板.zip用于 ACM 的算法代码模板.zip用于 ACM 的算法代码模板.zip用于 ACM 的算法代码模板.zip用于 ACM 的...

    acm递归算法总结竞赛

    在ACM(国际大学生程序设计竞赛)中,递归算法是一种常见的解决问题的方法,它通过函数自身调用自身来实现问题的解决。递归的核心在于找到基本情况(base case),即可以直接求解的问题,以及每次递归调用时问题规模...

    acm 常用算法模板

    在ACM(国际大学生程序设计竞赛)中,掌握一套高效的算法模板是至关重要的。这个“acm常用算法模板”正是为了帮助ACM竞赛初学者快速上手和应对各种问题而准备的。它包含了多种常见的算法思路和代码实现,旨在提高...

    ACM入门C语言经典算法

    《ACM入门C语言经典算法》是一本专为初学者设计的编程教程,主要针对ACM(国际大学生程序设计竞赛)的学习者。ACM竞赛是全球范围内的一项极具挑战性的编程比赛,旨在提升参赛者的算法设计、问题解决和编程能力。...

    ACM算法题100题-经典算法库

    根据给定文件的信息,我们可以提炼出与ACM算法题及经典算法库相关的多个知识点。以下是对这些知识点的详细解析: ### ACM国际大学生软件大赛简介 ACM(Association for Computing Machinery)国际大学生软件大赛是...

    ACM常用算法模板.html

    ACM常用算法模板.html

    acm各种算法的解析

    在ACM(国际大学生程序设计竞赛)中,参赛者需要掌握一系列高级的...深入学习每个领域的经典问题和解题技巧,结合实践不断磨练,你将能在ACM竞赛中游刃有余。记得在实践中不断反思和总结,提升算法理解和应用的能力。

    ACM竞赛经典算法实现

    这是ACM竞赛一些经典算法的c语言实现,里面包括包括复旦、吉大和邝斌等的ACM算法模板。

Global site tag (gtag.js) - Google Analytics