1 条题解

  • 0
    @ 2023-1-21 20:28:19
    #include<bits/stdc++.h>
    using namespace std;
    /*
    n个数,数值是1~n,求出现次数最多的数
    思路:
    1、用长度为1010的数组,统计每个数出现的次数
    2、求出现次数最多的数
    如果有多个相同的数,取最小的
    相当于求:数组的最大数下标 
    */
    int a[1010], n, x;
    int main()
    {
    	cin >> n >> x;
    	for(int i = 1; i <= n; i++){
    		a[x]++;
    		x = (x*37+33031) % n + 1;
    	}
    	//求a数组最大数下标
    	int ma = 1;
    	//这里的循环范围应该是统计范围
    	//本题:每个数的服务是1~n,因此这个循环2~n
    	for(int i = 2; i <= n; i++){
    		if(a[i] > a[ma]){
    			ma = i;
    		}
    	} 
    	cout << ma;
    	return 0;
    }
    
    
    
    • 1

    信息

    ID
    554
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    22
    已通过
    21
    上传者