UVA 11100 The Trip, 2007

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2041

小背包放到大背包里,则对数最多一定与某个质量数量最多的保持一致

#include <iostream> 
#include <algorithm> 
#include <cstring> 
#include <cstdio>
#include <vector> 
#include <queue> 
#include <cstdlib> 
#include <iomanip>
#include <cmath> 
#include <ctime> 
#include <map> 
#include <set> 
using namespace std; 
#define lowbit(x) (x&(-x)) 
#define max(x,y) (x>y?x:y) 
#define min(x,y) (x<y?x:y) 
#define MAX 100000000000000000 
#define MOD 1000000007
#define pi acos(-1.0) 
#define ei exp(1) 
#define PI 3.141592653589793238462
#define ios() ios::sync_with_stdio(false)
#define INF 0x3f3f3f3f 
#define mem(a) (memset(a,0,sizeof(a))) 
typedef long long ll;
int n,a[10009];
int main()
{
    int k=0;
    while(scanf("%d",&n)&& n)
    {
        for(int i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
        }
        if(k) printf("
");
        sort(a,a+n);
        int t=a[0],cnt=1;
        int maxn=1;
        for(int i=1;i<n;i++)
        {
            if(a[i]!=t)
            {
                cnt=1;
                t=a[i];
            }
            else cnt++;
            maxn=max(maxn,cnt);
        }
        printf("%d
",maxn);
        for(int i=1; i<=maxn; i++)  
        {  
            int flag=0;
            for(int j=i-1;j<=n-1;j+=maxn)
            {
                if(flag==0)  
                {  
                    printf("%d",a[j]);  
                    flag=1;  
                }  
                else  
                {  
                    printf(" %d",a[j]);  
                }
            }
            printf("
");
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/7281063.html