题目
MoveToEx找到了很多不同颜色的珠子,他把这些珠子排成了一列,每个珠子的颜色用 表示。
定义一个区间的美观度为区间中不同颜色的珠子个数。
求:在所有 个区间中,所有区间的美观度之和是多少。
解题思路
枚举每个区间的左边界 ,
- 确定左边界后,枚举区间的右边界,统计区间内的珠子个数,将其计入结果
。
C++代码
#include<iostream>
#include<vector>
#include<unordered_set>
using namespace std;
int main(){
int n;
cin >> n;
vector<int> color(n);
for(int i=0; i<n; ++i)
cin >> color[i];
int sum = 0;
for(int i=0; i<n; ++i){
unordered_set<int> st;
for(int j=i; j<n; ++j){
st.insert(color[j]);
sum += st.size();
}
}
cout << sum << endl;
return 0;
} 
京公网安备 11010502036488号