Beauty Values

题意:给$n$个数,

定义它的Beauty Values为所有连续子区间的(区间长度*区间内不同数字的数目)求和

求Beauty Values

A[i]数组表示数字i最近一次出现在什么时候,增加一个数字i,A[i]之前引起的只是区间长度的变化,数字种类没有增加,

dp[i]记录i和i-1之间的ans差

#include<bits/stdc++.h>
using namespace std;
int A[];
//int B[100004];
typedef long long ll;
ll dp[];
ll ans=,t=;
int n;
int main()
{
scanf("%d",&n);
int x;
for(int i=;i<=n;i++){
scanf("%d",&x);
if(A[x]==){
ans+=(dp[i-]+i);
dp[i]=ans-t;
A[x]=i;
t=ans;
}else{
ans+=dp[i-]+i-A[x];
dp[i]=ans-t;
A[x]=i;
t=ans;
}
}
cout<<ans<<'\n';
}

Beauty Values的更多相关文章

  1. 2019牛客暑期多校训练营(第八场)B Beauty Values && C CDMA

    B题题意: 题目 给你n个数,让你把这一个序列中的所有子区间的Beauty Values加起来,Beauty Values是子区间内有几个不同的数 题解: 肯定不会是暴力,所以我们就要在各元素的位置上 ...

  2. 2019牛客多校B Beauty Values——思维题

    题目 求所有子区间中不同元素之和. 分析 枚举相邻的相同数字形成的区间,计算它是哪些区间的子区间,每次有-1的贡献,将其从总贡献中减去. #include<bits/stdc++.h> u ...

  3. 2019牛客暑期多校训练营(第八场) - B - Beauty Values - 水题

    https://ac.nowcoder.com/acm/contest/888/B 实际上的确是个水题,写个小数据找个规律看看,所谓不同度,其实就是依次插入每个元素后,各种元素出现的最后位置的坐标求和 ...

  4. 牛客多校第八场 B Beauty Values 水题

    题意: 给定一个序列,问你子区间中不同数字数量,在所有子区间中之和为多少. 题解: 统计每个数字在多少个区间中出现即可.对于每个数字,直接枚举左右端点. 注意去重,因此要记录每个数字上一次出现在哪里, ...

  5. cf #365b 巧妙的统计

     Mishka and trip time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  6. Codeforces Round #365 (Div. 2) B 前缀和

    B. Mishka and trip time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  7. cf703B Mishka and trip

    B. Mishka and trip time limit per test 1 second memory limit per test 256 megabytes input  standard ...

  8. 暑假练习赛 003 F Mishka and trip

    F - Mishka and trip Sample Output   Hint In the first sample test: In Peter's first test, there's on ...

  9. C. Playlist Educational Codeforces Round 62 (Rated for Div. 2) 贪心+优先队列

    C. Playlist time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...

随机推荐

  1. Go语言入门篇-高级数据类型

    一.数组类型 二.切片类型 切片的更多操作方法 示例: 三.字典类型 四.通道类型 示例: 通道的更多种类 示例: 五.函数 示例: 六.结构体和方法 示例: 七.接口 八.指针 示例: mooc

  2. MySQL-快速入门(13)MySQL日志

    1.MySQL的日志.主要分为4类. 1>二进制日志:记录所有更改数据的语句,可以用于数据复制. 2>错误日志:记录MySQL服务的启动.运行.停止MySQL服务时出现的问题. 3> ...

  3. 提高CUI测试稳定性技术

    GUI自动化测试稳定性,最典型的表现形式就是,同样的测试用例在同样的环境上,时而测试通 过,时而测试失败. 这也是影响GUI测试健康发展的一个重要障碍,严重降低了GUI测试的可信性. 五种造成GUI测 ...

  4. 最长公共子序列(LCS) Medium1

    In a few months the European Currency Union will become a reality. However, to join the club, the Ma ...

  5. Redis数据类型及基本命令

    一.基础命令 提示:Redis不区分命令大小写 1.获得符合规则的键名列表 keys pattern    //pattern支持glob风格通配符格式 2.判断一个键是否存在 exists key  ...

  6. 如何让form2中的数据源,显示在form1的dataGridView控件中呢????

    定义一个static的静态变量,即可全局访问

  7. mvvm实现一个简单的vue

    vue,基于mvvm模式下的一个前端框架 mvvm模式下简单的实现数据代理,数据劫持 1.是用Object.defineProperty 实现数据代理 2.使用发布订阅者模式,配合 Object.de ...

  8. 内存分析工具MAT(Memory Analyzer Tool)从安装到使用

    一.安装 首先,你得有一个Eclipse(因为MAT是Eclipse的插件) 然后,你要在Eclipse上安装MAT,步骤如下: 1.点击Help,Install New Soft,就出现了以下Ins ...

  9. 一份贴近真实面试的Java面试题(基础部分)

    这是一份关于Java基础的面试题.在网上的关于Java的面试题数不胜数,但本人认真看过后觉得大多数都没有实用性,有很多是面试官根本就不会问到的,企业根本不会用到的,一些已经脱离了实际开发的技术问题.而 ...

  10. 一、left

    一.left - right 就是遍历(以左边遍历,以右边遍历) inner join 就是求公共部分的结果集 left join 查询结果 right join结果 inner join 解决的办法 ...