将数字用颜色代替那么第一个数字与后面形成的区间如图
其中
不同区间的美观度相加就是2+2+3+3;
依次类推那么前面的数字与后面一一组区间,
那么很显然转化为代码首先要遍历一遍每个数字。
然后关键就是如何通过代码计算美观度也就是区间中不同颜色的数。
下面请看代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,t = 0;
int a[1001];
int sum = 0;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=0;i<n-1;i++)
{
int b[1001]={0};
b[a[i]] = 1;
t = 1;
for(int j =i+1;j<n;j++)
{
if(b[a[j]]==0)
{
t++;
b[a[j]]++;
}
sum+=t;
}
}cout<<sum+n<<endl;
}
因为遍历组合式没有把单个颜色成区间的情况考虑进去所以最后还要加一个n。