zoukankan      html  css  js  c++  java
  • HDU 1029 Ignatius and the Princess IV DP

    kuangbin 专题

    这题,有很多种解法。

    第一种:

    直接比较每个数出现次数。

     1 #include<iostream>
     2 #include<string>
     3 #include<algorithm>
     4 #include<cstdlib>
     5 #include<cstdio>
     6 #include<set>
     7 #include<map>
     8 #include<vector>
     9 #include<cstring>
    10 #include<stack>
    11 #include<cmath>
    12 #include<queue>
    13 #include <bits/stdc++.h>
    14 using namespace std;
    15 #define INF 0x3f3f3f3f
    16 #define LL long long
    17 #define clc(a,b) memset(a,b,sizeof(a))
    18 const int maxn=1000000;
    19 int a[maxn];
    20 int b[maxn];
    21 int main()
    22 {
    23     int n;
    24 
    25     while(~scanf("%d",&n))
    26     {
    27         clc(b,0);
    28         for(int i=0;i<n;i++)
    29         {
    30             scanf("%d",&a[i]);
    31             b[a[i]]++;
    32         }
    33         int maxx=-1;
    34         int ans;
    35         for(int i=0;i<10000;i++)
    36         {
    37             if(maxx<b[i])
    38                 {
    39                     maxx=b[i];
    40                     ans=i;
    41                 }
    42         }
    43         printf("%d
    ",ans);
    44     }
    45     return 0;
    46 }
    View Code

    第二种:

    应为输出至少(n+1)/2次的数,所以,最后result一定是要求的数。

     1 #include<iostream>
     2 #include<string>
     3 #include<algorithm>
     4 #include<cstdlib>
     5 #include<cstdio>
     6 #include<set>
     7 #include<map>
     8 #include<vector>
     9 #include<cstring>
    10 #include<stack>
    11 #include<cmath>
    12 #include<queue>
    13 #include <bits/stdc++.h>
    14 using namespace std;
    15 #define INF 0x3f3f3f3f
    16 #define LL long long
    17 #define clc(a,b) memset(a,b,sizeof(a))
    18 const int maxn=1000000;
    19 int a[maxn];
    20 int b[maxn];
    21 int main()
    22 {
    23     int n,i;
    24     int t;
    25     int cnt;
    26     int result;
    27     while(scanf("%d",&n)!=EOF)
    28     {
    29         cnt=0;
    30         for(i=0; i<n; i++)
    31         {
    32             scanf("%d",&t);
    33             if(cnt==0)
    34             {
    35                 cnt=1;
    36                 result=t;
    37             }
    38             else
    39             {
    40                 if(t==result)cnt++;
    41                 else cnt--;
    42             }
    43         }
    44         printf("%d
    ",result);
    45     }
    46     return 0;
    47 }
    View Code
  • 相关阅读:
    桌面图标有蓝底
    创建与删除SQL约束或字段约束
    (转)ASP.NET(C#) 读取EXCEL ——另加解决日期问题
    ASP连接11种数据库的语法
    GridView 合并列、行类
    Office对应ContentType
    (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
    (转)js判断只能输入数字或小数点
    vscode设置字体大小
    springsecurity+jwt实现登录
  • 原文地址:https://www.cnblogs.com/ITUPC/p/5138139.html
Copyright © 2011-2022 走看看