题目大意:

给出n个数,要求将其分成最少的递增序列,保证序列最少的同时要使得序列长度的最大值最小。  n<=10000

题解:

1.我是直接看着《训练指南》里的中文题面的,lrj似乎忘记提“保证序列最少的同时要使得序列长度的最大值最小”这个条件了,WA到死。。我的做法是统计每个数出现的次数,然后每次尽可能构造一个最长的序列,这样能保证序列个数最少,但是显然不满足第二个条件。

2.由于之前WA到死,就很没志气的百度了题解..然后瞄到一眼最少的序列个数就是出现次数最多的那个数的出现次数(记为m)..然后突然就会做了。先把所有数从小到大排序,然后第0个数分给第0个序列,第1个数分给第1个序列....第i个数分给第(i mod m)个序列。这样显然符合题意,而且每个序列的长度非常平均,序列长度的最大值一定是最小的。

代码:

 #include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <vector>
#include <map>
#include <cstdlib>
#include <set>
using namespace std; #define X first
#define Y second
#define N 10010
typedef long long ll;
typedef pair<int,int> pii; int n,m,tot;
int v[N],b[N],cnt[N];
vector<int> g[N]; int main()
{
//freopen("in.in","r",stdin);
//freopen("out.out","w",stdout); while (scanf("%d",&n))
{
if (n==) break;
for (int i=;i<n;i++) scanf("%d",&v[i]);
sort(v,v+n); tot=m=; for (int i=;i<n;i++)
{
if (i== || v[i]!=v[i-]) cnt[tot++]=;
else cnt[tot-]++;
}
for (int i=;i<tot;i++) if (cnt[i]>cnt[m]) m=i;
m=cnt[m];
printf("%d\n",m);
for (int i=;i<m;i++) g[i].clear();
for (int i=;i<n;i++) g[i%m].push_back(v[i]); for (int i=;i<m;i++)
{
for (int j=;j<g[i].size();j++)
{
printf("%d",g[i][j]);
printf("%c",j==g[i].size()-? '\n':' ');
}
}
} return ;
}

The trip(Uva 11100)的更多相关文章

  1. UVA 11100 The Trip, 2007 水题一枚

    题目链接:UVA - 11100 题意描述:n个旅行箱,形状相同,尺寸不同,尺寸小的可以放在尺寸大的旅行箱里.现在要求露在最外面的旅行箱的数量最少的同时满足一个旅行箱里放的旅行箱的数量最少.求出这样满 ...

  2. UVA 11100 The Trip, 2007 (贪心)

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  3. UVA 11100 The Trip, 2007 贪心(输出比较奇葩)

    题意:给出n个包的大小,规定一个大包能装一个小包,问最少能装成几个包. 只要排序,然后取连续出现次数最多的数的那个次数.输出注意需要等距输出. 代码: /* * Author: illuz <i ...

  4. UVa 11100 - The Trip, 2007 难度: 0

    题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...

  5. UVa 11100 The Trip, 2007

    今天的教训:做题要用大块的时间来做,上午做一下,做题做到一半就去忙别的事,那么后面再做的时候就无限CE,WA了.因为你很难或者需要很长时间来找回当时的思路. 题意:就像套瓷娃娃一样,有n个包,大小可能 ...

  6. UVa 11100 The Trip, 2007 (题意+贪心)

    题意:有n个包,其中小包可以装到大的包里,包的大小用数字进行表示,求最小的装包数量. 析:这个题的题意不太好理解,主要是有一句话难懂,意思是让每个最大包里的小包数量的最大值尽量小,所以我们就不能随便输 ...

  7. UVa 11100 旅行2007

    https://vjudge.net/problem/UVA-11100 题意: 给定n个正整数,把它们划分成尽量少的严格递增序列,尽量均分. 思路: 因为必须严格递增,所以先统计每个数字出现的次数, ...

  8. <算法竞赛入门经典> 第8章 贪心+递归+分治总结

    虽然都是算法基础,不过做了之后还是感觉有长进的,前期基础不打好后面学得很艰难的,现在才慢慢明白这个道理. 闲话少说,上VOJ上的专题训练吧:http://acm.hust.edu.cn/vjudge/ ...

  9. The Trip PC/UVa IDs: 110103/10137, Popularity: B, Success rate: average Level: 1

    #include<cstdio> #include<iostream> #include<string> #include<algorithm> #in ...

随机推荐

  1. R:incomplete final line found by readTableHeader on

      报错: In read.table("abc.txt", header = T) :  incomplete final line found by readTableHead ...

  2. 一位程序员如何修炼成CTO

    几乎整个互联网行业都缺CTO,特别是一些草根背景的创业者,这个问题更加显著.从我自己的感受,身边各种朋友委托我找CTO的需求,嗯,算下来超过两位数了,光最近一个月就有3个,而且这三家都是刚拿了A轮的. ...

  3. 前端中sprite.png的实现

    通过background-position来控制X轴和Y轴,从而实现显示sprite.png中想要的ico或图案. 如下图所示:

  4. SQL函数

    1,字符串截取拼接 CONCAT(),'****');SUBSTRING_INDEX(c.context,'}',1);SUBSTRING_INDEX(a.task_context,':',-1) a ...

  5. 未解决的问题,登录163邮箱http://mail.163.com/,用xpath的方式定位密码输入框的时候,总是报找不到该元素

    退出的时候出现: xpath定位方法: 注意xpath路径写的太长,如果层级全部写完定位不到,就尝试去掉一些层级

  6. yyyy-MM-dd与YYYY-MM-dd

    Date date=new Date(); DateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:MM:SS"); DateForm ...

  7. [地图SkyLine二次开发]框架(3)

    上节将显示我们地图的OBJECT控件,布了一下局,但地图没有进行加载. 这是因为我们要在另一个页面,对OBJECT控件进行地图加载,并且得到该控件的sgworld,以便对其进行我们想要的开发. 这里, ...

  8. django框架代码基础

    urls.py 导入相对应的模块from django.conf.urls import url,includefrom django.contrib import adminfrom son1.vi ...

  9. nodejs的第五天学习笔记

    一.调试nodejs代码 1)使用console.log() 使用麻烦,用了以后还要删除 2)nodejs的自带调试器 -node debug a.js 没有任何作用,一个玩具,将来有一天可以会变得强 ...

  10. HTML5 十大新特性(六)——地理定位

    简单地用一句话概括就是,使用js获取浏览器当前所在的地理坐标,实现LBS(Location Based Service,基于定位的服务). 下面写一下它的基本调用: if(navigator.geol ...