D—税收问题

D-城市的税金

https://ac.nowcoder.com/acm/contest/3036/D

//改了好几次的算法 ,终于过了
#include<bits/stdc++.h>
using namespace std;
long long sum[105],num[105];
int n, m, l, r,ans=1,temp=1;
int main(){
cin >> n >> m;
for (int i = 1; i <= n;++i){//数据的读入
cin >> sum[i];
num[i] = sum[i]; //保存副本
}
for (int k = 0; k < m;++k){
int t;
cin >> t;
if(t==1){
cin >> l >> r;
for (int p = l; p <= r;++p){
sum[p] = sum[p] * 251 % 996 * 404 * 123;
num[p] = sum[p];
}
}
else if(t==2){
cin >> l >> r;
sort(num + l, num +r+1);//排序
temp = ans=1;//初始化
for (int i = l; i <= r;++i){
if(num[i]==num[i+1]){
temp++;
continue;
}
else{
if(temp>ans){
//最大值更新
ans = temp;
}
temp = 1;//初始化
}
}
cout << ans << endl;
for (int a = l; a <= r;++a){//与sort相对应,清楚排序带来的影响。
num[a] = sum[a];//重新恢复备份数组
}
}
}
return 0;
}

全部评论
这道题好像还没人发题解,我好像是第一个。这个用的是排序的思路,开大数组的方式会爆int,所以就放弃了
点赞 回复 分享
发布于 2020-08-30 23:23

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务