【链接】 我是链接,点我呀:)
【题意】
在这里输入题意
【题解】
O(n^2)枚举每一个区间。
然后维护这个区间里面的“统治数字"是什么。
对于每个区间cnt[统治数字]++;
【代码】
#include <bits/stdc++.h>
using namespace std;
const int N = 5000+10;
int n;
int t[5000+10];
int num[5000+10],cnt[N];
int main()
{
ios::sync_with_stdio(0),cin.tie(0);
cin >> n;
for (int i = 1;i <= n;i++) cin >> t[i];
for (int i = 1;i <= n;i++){
for (int j= 1;j <= n;j++) num[j] = 0;
int ma = -1,idx = -1;
for (int j = i;j <= n;j++){
num[t[j]]++;
if (num[t[j]]>ma){
ma = num[t[j]];
idx = t[j];
}else if (num[t[j]]==ma && t[j]<idx){
idx = t[j];
}
cnt[idx]++;
}
}
for (int i = 1;i <= n;i++) cout <<cnt[i]<<' ';
return 0;
}
原文地址:https://www.cnblogs.com/AWCXV/p/8358938.html
时间: 2024-10-01 04:03:07