C语言答案
不得不说这道题我统计次数的思路还是想了很久才想到的,对我这种初学者来说好难...
#include<stdio.h>
int main()
{
int N,M,i,j,k;
long long d[150];
scanf("%d%d\n",&N,&M);//因为后面税金修改后数字会变得很大所以直接long long
for ( i = 1; i <= N; i++)
{
scanf("%lld",&d[i]);
}//最初N个城市所需的税金
int a,b,c;
for ( i = 0; i < M; i++)
{
scanf("%d%d%d",&a,&b,&c);
if (a==1)
{
for ( j = b; j <= c; j++)
{
d[j] = d[j]*251%996*404*123;
}
}//如果第一个数字是1,则对b到c编号的城市税金进行修改
if (a==2)
{
int num = 1;
for ( j = b; j <= c; j++)
{
int cnt = 1;//整个循环就是用第b个数与该范围内所有的数进行比较相同cnt++.
//之后就是第b+1个数与该范围内所有的数比较...依此类推直到第c个数比较完毕
for ( k = b+1; k <=c ; k++)
{
if(k==j) continue;//因为cnt已经初始化为1了,所以统计相同的数时不能统计自己。
if (d[j]==d[k]) cnt++;
}
if (num < cnt) num = cnt;
}
printf("%d\n",num);
//如果是2,则要答出相同税金金额出现的出现次数
}
}
return 0;
}


京公网安备 11010502036488号