POJ 3640 Conformity

简介: POJ 3640 Conformity

题意:一共n个学生,每人5门课程代号(100~499)的组合,这些课程组合的重复次数为受欢迎度。求选受欢迎度最大的课程的学生人数?


思路:将每个学生的五门选课从小到大进行排序,拼成一个15位数,开一个long long类型的数来储存,然后用map容器对该数出现的次数进行累加。


#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int z[5];
int main()
{
    int n;
    while(cin>>n&&n)
    {
      int maxx=0,sum=0;
      map<ll,int> Map;
      for(int i=0;i<n;i++)
      {
      for(int j=0;j<5;j++)
      cin>>z[j];
      sort(z,z+5);
      ll key=0;
      for(int k=0;k<5;k++)
      {
        key*=1000;
        key+=z[k];
      }
      maxx=max(Map[key]+=1,maxx);
      }
      for(map<ll,int>::iterator it=Map.begin();it!=Map.end();it++)
      {
        if(it->second==maxx)
        sum+=maxx;
      }
      cout<<sum<<endl;
    }
    return 0;
}

目录
相关文章
|
6月前
Hopscotch(POJ-3050)
Hopscotch(POJ-3050)
poj 2299 求逆序数
http://poj.org/problem?id=2299 #include using namespace std; int aa[500010],bb[500010]; long long s=0; void merge(int l,int m,int r) { ...
796 0
|
人工智能 BI
|
测试技术