首页 > 学院 > 开发设计 > 正文

HDU 1029 Ignatius and the Princess IV

2019-11-08 02:15:10
字体:
来源:转载
供稿:网友
/*水题B - Ignatius and the PRincess IV时间: 2017/02/19题意:在一组数找到出现次数最多的数。题解:1.可以按map容器计数。2.可以排序后,线性计数3.因为最大的哪个数出现次数大于一半,可以如果遇见那个数+1,不是-1,那么剩下的肯定是那个数。*/#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <queue>#include <vector>#include <map>using namespace std;#define LL long long#define INF 0x3f3f3f3f#define PI acos(-1.0)#define E 2.71828#define MOD 1000000007#define N 1000010#define M 10010const double eps=1e-8;map<int,int> mp;int a[N];int main(){    int n;    while(~scanf("%d",&n))    {        mp.clear();        for(int i = 0; i < n; i++)        {            scanf("%d",&a[i]);            mp[a[i]]++;        }        int ans = -INF,res;        for(int i = 0; i < n; i++)        {            if(ans < mp[a[i]])            {                ans = mp[a[i]];                res = a[i];            }        }        printf("%d/n",res);    }}int main(){    int i,n;    while(~scanf("%d",&n))    {        for(i=0;i<n;i++)            scanf("%d",&a[i]);        sort(a,a+n);        int t=1;        for(i=1;i<n;i++)        {            if(a[i]!=a[i-1])                t=1;            else                t++;            if(t==(n+1)/2)            {                printf("%d/n",a[i]);                break;            }        }    }}int main(){    int i,n;    while(~scanf("%d",&n))    {        int a,ans,ci = 0;        for(i=0;i<n;i++)        {            scanf("%d",&a);            if(ci == 0)            {                ci++;                ans = a;            }            else            {                if(a == ans)                    ci++;                else                    ci--;            }        }        printf("%d/n",ans);    }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表