问题标题: 酷町堂:4372

0
0
已解决
柯以成
柯以成
新手光能
新手光能
#include<bits/stdc++.h>
#include<iostream>
#include<iomanip>
#include<algorithm>
#include<map>
#include<cstring>
#include<string>
#include<stack>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<vector>
#include<set>
#include<ctime>
#include<cctype>
#include<queue>
using namespace std;
long long a[500005],b[10050];
int main ()
{
    int n,f=0,p=0;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        b[a[i]]++;
    }
    for(int i=1;i<=10000;i++){
    if(b[i]!=0){
    if(b[i]>f){
        f=b[i];
        p=i;
    } 
}   
}   
    cout<<f;
    return 0;
}

哪错了,请大佬赐教


0
已采纳
缪鲲鹏
缪鲲鹏
新手光能
新手光能

思路是对的,只不过数组定义太小了,造成很多数无法输入.

改错及优化:

错:

1.根据题目要求,把a数组的范围改成1000001

优化:

1.把b数组范围改成2005

2.把头文件全删了,只留下一个#include <iostream>

3.把long long 改成 int

4.把第二个for循环的出门条件改成i<=2005

0
褚俊皓
褚俊皓
新手天翼
新手天翼

思路是对的,只不过数组定义太小了,造成很多数无法输入.

改错及优化:

错:

1.根据题目要求,把a数组的范围改成1000001

优化:

1.把b数组范围改成2005

2.把头文件全删了,只留下一个#include <iostream>

3.把long long 改成 int

4.把第二个for循环的出门条件改成i<=2010

0
潘晨皓
潘晨皓
高级天翼
高级天翼

思路是对的哦

不过剩下的看他们都把

我要回答