数颜色

数颜色

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;
}
全部评论

相关推荐

10-21 23:48
蚌埠坦克学院
csgq:可能没hc了 昨天一面完秒挂
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务