UVA - 11100 The Trip, 2007(贪心)
2014-10-16 19:53
549 查看
题目大意:
给你n个箱子的尺寸,大的箱子能套小的箱子,现在你要用大的箱子来套小的箱子,使得总箱子数量最小,并在总箱子数最小的情况下,使得套的层数尽量小。
解析:
不用说肯定是贪心,由于相同大小的箱子不能互相嵌套,所以外围箱子的个数取决于最多箱子的个数,那么最多箱子的个数k确定下来了。那么就按照
1,2,3...k,1,2,3..k,这样输出就好了。
给你n个箱子的尺寸,大的箱子能套小的箱子,现在你要用大的箱子来套小的箱子,使得总箱子数量最小,并在总箱子数最小的情况下,使得套的层数尽量小。
解析:
不用说肯定是贪心,由于相同大小的箱子不能互相嵌套,所以外围箱子的个数取决于最多箱子的个数,那么最多箱子的个数k确定下来了。那么就按照
1,2,3...k,1,2,3..k,这样输出就好了。
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N = 10010; int num ,bag ; int maxn; int main() { int flag = 0; int n; while(scanf("%d",&n) != EOF && n) { if(flag++) { printf("\n"); } maxn = 0; memset(num,0,sizeof(num)); for(int i = 0; i < n; i++) { scanf("%d",&bag[i]); num[bag[i]]++; maxn = max(maxn,num[bag[i]]); } printf("%d\n",maxn); sort(bag,bag+n); for(int i = 0; i < maxn; i++) { for(int j = i; j < n; j += maxn) { printf("%d",bag[j]); if(j + maxn >= n) { printf("\n"); }else { printf(" "); } } } } return 0; }
相关文章推荐
- UVA - 11100 The Trip, 2007 贪心
- uva 11100 The Trip, 2007(贪心)
- UVA 11100 The Trip, 2007 贪心(输出比较奇葩)
- [贪心]UVA11100 - The Trip, 2007
- The Trip, 2007 UVA - 11100(贪心)
- uva - 11100 - The Trip, 2007(贪心)
- UVA 11100 - The Trip, 2007(贪心)
- UVA 11100 The Trip,2007(贪心)
- UVA11100 The Trip, 2007(贪心)
- UVA 11100 The Trip, 2007 (贪心)
- UVA 11100 The Trip, 2007 贪心(输出比较奇葩)
- UVa11100 - The Trip, 2007(贪心【重点:解的构造)
- UVa 11100 The Trip, 2007 (贪心&一举两得的输出技巧)
- uva 11100 - The Trip, 2007(贪心)类似于一道LIS题目
- UVa 11100 The Trip, 2007 (题意+贪心)
- uva 11100 The Trip, 2007
- uva11100 The Trip, 2007
- UVA - 11100 The Trip, 2007
- UVA 11100 The Trip, 2007
- UVa 11100 - The Trip, 2007