数颜色
数颜色
https://ac.nowcoder.com/acm/problem/210755
题目
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; }