zoukankan      html  css  js  c++  java
  • UVA 11100 The Trip, 2007 水题一枚

    题目链接:UVA - 11100

    题意描述:n个旅行箱,形状相同,尺寸不同,尺寸小的可以放在尺寸大的旅行箱里。现在要求露在最外面的旅行箱的数量最少的同时满足一个旅行箱里放的旅行箱的数量最少。求出这样满足要求的任意一种方案。

    算法分析:首先我们可以确定最少的旅行箱的数量cnt:即n个旅行箱里按照尺寸大小分类(尺寸相同的在同一类),数量最多的那一类的数量。然后把cnt看成有cnt个堆,第二个要求就是要让这cnt个堆里最大旅行箱数量最小,直接用vector处理即可。

    等AC之后突然想到,三个旅行箱尺寸大小为2,2,4,那么就可以把前两个放在最后一个呀,但答案不是这样的。-_-

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<cstdlib>
     5 #include<cmath>
     6 #include<algorithm>
     7 #include<vector>
     8 #define inf 0x7fffffff
     9 using namespace std;
    10 const int maxn=10000+10;
    11 const int M = 1000000+10;
    12 
    13 int n,an[maxn];
    14 int vis[M],num[maxn];
    15 vector<int> vec[maxn];
    16 
    17 int main()
    18 {
    19     int ok=0;
    20     while (scanf("%d",&n)!=EOF && n)
    21     {
    22         if (ok) printf("
    ");
    23         ok=1;
    24         memset(vis,0,sizeof(vis));
    25         for (int i=0 ;i<maxn ;i++) vec[i].clear();
    26         int cnt=0,maxSize=0;
    27         for (int i=1 ;i<=n ;i++)
    28         {
    29             scanf("%d",&an[i]);
    30             vis[an[i] ]++;
    31             cnt=max(cnt,vis[an[i] ]);
    32             maxSize=max(maxSize,an[i]);
    33         }
    34         sort(an+1,an+n+1);
    35         int c=0;
    36         for (int i=1 ;i<=n ;i++)
    37         {
    38             vec[c].push_back(an[i]);
    39             c=(c+1)%cnt;
    40         }
    41         printf("%d
    ",cnt);
    42         for (int i=0 ;i<cnt ;i++)
    43         {
    44             int k=vec[i].size();
    45             printf("%d",vec[i][0]);
    46             for (int j=1 ;j<k ;j++) printf(" %d",vec[i][j]);
    47             printf("
    ");
    48         }
    49     }
    50     return 0;
    51 }
  • 相关阅读:
    软件测试入门知识
    QTP小应用一则
    频分时分波分码分
    解析UML9种图的作用
    OSI七层模型
    暑期实习心得
    0724工作小结 SQL查库是重点
    0723脚本存储过程的学习
    0722工作日志
    工作之余回味了曾经的写过的小说
  • 原文地址:https://www.cnblogs.com/huangxf/p/4418662.html
Copyright © 2011-2022 走看看