B-Beauty Values

2024-01-26 12:08
文章标签 values beauty

本文主要是介绍B-Beauty Values,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

链接:https://ac.nowcoder.com/acm/contest/888/B

Gromah and LZR have entered the second level. There is a sequence a[1], a[2], ……a[n]on the wall.
There is also a note board saying “the beauty value of a sequence is the number of different elements in the sequence”.
LZR soon comes up with the password of this level, which is the sum of the beauty values of all successive subintervals of the sequence on the wall.
Please help them determine the password!

**题意:给你一个序列,让你求出 所有子区间的不同数字的个数 总和
思路:找每个数字对总和的贡献,对于一个位置pos的数字x 找到pos前面第一个x出现的位置i,x数字的贡献是
( pos - i + 1) * (n - pos + 1)
可能这个公式可以这样理解,左面的个数乘上右边的个数(包括他自己的)
记录一下每个数字出现时的的位置
**

1 2 1 3
对于第一个1就是 1 * 4 个 包括他自己,左1右4
对于第二个就是2 * 3 = 6
对于第三个1之前出现过了,然后前面一个1已经算过这个1的区间了 就是 2 * 2 = 4左2右2
最后一个就是4 * 1 左4右1
综合就是4 + 6 + 4 + 4 是18

也就是对于每个数字查找它所在的区间有多少个,相加之和。

#include <iostream>
using namespace std;
typedef long long ll ;
int vis[100010];
int a[110000] ;
int main()
{int n ;cin >> n ;for(int i = 1;i <= n;i ++)scanf("%d",&a[i]) ;ll ans = 0 ;for(int i = 1;i <= n;i ++){if(vis[a[i]]){ans += 1ll * (n - i + 1) * (i - vis[a[i]]) ;//   cout << ans << endl ;}else ans += 1ll * (n - i + 1) * i ;// , cout << ans << endl ;vis[a[i]] = i ;  }cout << ans << endl ;return 0 ;
}

这篇关于B-Beauty Values的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/646751

相关文章

Page directive: illegal to have multiple occurrences of contentType with different values (x,X)之解

Question: Page directive: illegal to have multiple occurrences of contentType with different values (old: text/html; charset=utf-8, new: text/html;charset=UTF-8) Analysis: 出现这个的原因是这两个jsp的contentT

iReport利用Print Repeated Values做分组报表以及对重复值做distinct运算

iReport自带的分组功能有可能是比较符合西方的分组标准,对于中国人来说希望显示方便、节省纸张,对于iReport实现起来就稍微复杂一点了。 本文所用demo地址:http://download.csdn.net/detail/u013284604/6812623 iReport版本 5.1.0,demo所用数据源:json数据源 一、iReport利用Print Repeated Val

OpenAI Gym custom environment: Discrete observation space with real values

题意:OpenAI Gym 自定义环境:具有实数值的离散观测空间 问题背景: I would like to create custom openai gym environment that has discrete state space, but with float values. To be more precise, it should be a range of valu

for 出错 ValueError: too many values to unpack (expected 2) 遍历多个变量

贼简单的代码示例 for [i,j] in [range(3),range(3)]:print(i,j) 输出: ValueError: too many values to unpack (expected 2) 正确示例 for i,j in zip(range(3),range(3)):print(i,j) 输出: 0 0 1 1 2 2 原因:后面zip()包装了两个lis

21. Map接口中keySet()、values()和entrySet()方法的区别是什么?它们各自返回什么内容?

在Java中,Map接口提供了keySet()、values()和entrySet()方法,这些方法用于访问Map中的不同部分。下面详细介绍它们的区别以及它们各自返回的内容。 1. keySet() 方法 作用: keySet()方法返回Map中所有键(Key)的集合。 返回类型: Set<K>,返回一个Set视图,包含了Map中所有的键。 使用场景: 当你只需要遍历或操作Map中的

ISO 26262中的失效率计算:SN 29500-7 Expected values for relays

目录 引言 1 基准条件下的失效率 2 失效率转换 2.1 失效率预测模型 2.2 负载应力系数 2.2.1 应力区域 2.2.2 负载应力系数选择 2.3 环境应力系数 2.4 温度应力系数 2.4.1 温度应力系数计算模型 2.3.2 温度应力系数计算 2.4 失效准则系数 3 任务剖面应力系数 引言 SN 29500 是西门子(Siemens)制定的一系

ISO 26262中的失效率计算:SN 29500-4 Expected values for passive components

目录 概要 1 基准条件下的失效率 2 失效率转换 2.1 失效率预测模型 2.2 电压应力系数 2.2.1 电压应力系数计算模型 2.2.2 电压应力系数计算 2.3 温度应力系数 2.3.1 温度应力系数计算模型 2.3.2 温度应力系数计算 2.4 质量系数 3 任务剖面应力系数 4 早期失效系数 概要 SN 29500 是西门子(Siemens)制定的

(白书训练计划)UVa 1152 4 Values whose Sum is 0(中途相遇法。。)

题目地址:UVa 1152 先枚举A集合与B集合的和,存起来,然后再枚举C集合与D集合的和,看与存起来的值有多少个是互为相反数的。水题。找存起来的值时可以用二分找。 代码如下: #include <iostream>#include <cstdio>#include <string>#include <cstring>#include <stdlib.h>#include <m

POJ 2187 Beauty Contest (凸包)

题目地址:POJ 2187 凸包第一发。。用的大白书上的andew算法。 先求出凸包,然后最大距离一定是凸包之中的某两点之间的距离,然后枚举找出最大值。 代码如下: #include <iostream>#include <cstdio>#include <string>#include <cstring>#include <stdlib.h>#include <math.h

python的cv2因版本问题报not enough values to unpack (expected 3, got 2)错解决

up主开发环境:python3.6、OpenCV3.4.4、tensorflow1.12 my开发环境:Python 3.7.0、cv2 4.2.0、tensorflow1.15.0 跑一个车牌识别的脚本 https://blog.csdn.net/GK_2014/article/details/84779166 就知道开发环境不同会出幺蛾子,果然就出了, Traceback (most re