ZR#985

解法:

可以先假设每个区间中所有颜色都出现,然后减掉多算的答案。对每种颜色记录它出现的位置,则相邻两个位置间的所有区间都要减去,时间复杂度 $ O(n) $ 。

其实可以理解为加法原理的逆过程,即减法原理。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath> using namespace std; #define LL long long
#define N 100010 LL las[N],n,ans,x; inline LL calc(LL n) {
return n * (n + 1) / 2;
} int main() {
scanf("%lld",&n);
ans = calc(n) * n;
for(int i = 1 ; i <= n ; i++) {
scanf("%lld",&x);
ans -= calc(i - las[x] - 1);
las[x] = i;
}
for(int i = 1 ; i <= n ; i++)
ans -= calc(n - las[i]);
printf("%lld\n",ans);
return 0;
}

最新文章

  1. spring MVC 尝试传参json(应用部分)
  2. vs2015安装体验
  3. [html]head区域编写规范
  4. linux下oracle启动问题
  5. 那些可能被你忽略的MySQL优化技巧
  6. wenti
  7. iOS上架(转)
  8. 【译】 AWK教程指南 7AWK应用实例
  9. c#修改本地连接工具 ip地址,dns,网关,子网掩码
  10. 不直接访问远程的数据库,而是通过中间件(专业DBA的博客)
  11. NET 平台下的插件化开发内核
  12. 【转】【Egit】如何将eclipse中的项目上传至Git
  13. (转载)解析ISO8583报文实例
  14. Collection学习目录
  15. MySQL和SQLyog的配置-安装及遇到的问题
  16. 第三十三节,目标检测之选择性搜索-Selective Search
  17. 休眠与开机自动运行等VC代码
  18. day23 序列化模块
  19. 修改Unity中Lua文件的默认打开程序
  20. vue 加载更多

热门文章

  1. Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient报错,问题排查
  2. PHP导出XML格式的EXCEL
  3. Java中BIO和NIO
  4. chrome滚动条颜色尺寸设置
  5. viewer与 iview Carousel(走马灯) 结合使用,图片无法显示
  6. 学习python的日常2
  7. WampServer详解
  8. VLAN实验2:配置Trunk接口
  9. SpringCloud学习心得之Eureka注册中心的基本使用
  10. tensorflow与神经网络中遇到的问题与解决方法【持续更新】