TL-1026 String of Colorful Beads

Basic Ideas

本题不难.

设颜色存储在数组a[1...n]中, 只需遍历一遍颜色序列, 依次求出某起点ts(不包括)到当前点i的最长不重复长度, 并求出其价值, 在长度相等时比较大小即可.

问题的关键在于如何设计ts. 显然, 一开始ts为0, 而之后的更新过程公式为, ts = a[i]最近出现的位置, 条件为其位置大于ts. 请结合代码思考其正确性.

对于价值序列, 一开始我们可以先进行累加计算, 以求后面在O(1)内计算完毕.

Code in C++

#include <bits/stdc++.h>
using namespace std;vector<int> val, tv(1), s, pos;int main() {int n;cin >> n;val.resize(n + 1), s.resize(n + 1);for (int i = 1; i <= n; i++) cin >> val[i];for (int i = 1; i <= n; i++) cin >> s[i];for (int i = 1; i <= n; i++) tv.push_back(tv.back() + val[s[i]]);pos.resize(n + 1, -1);int  l = 0, ans = 0, ts = 0, start = 0;for (int i = 1; i <= n; i++) {// 当前颜色最近出现的位置小于起点if (pos[s[i]] < ts&& (l < i - ts|| (l == i - ts && ans < tv[i] - tv[ts]))) {l = i - ts;ans = tv[i] - tv[ts];start = ts;}// 当前颜色最近出现的位置大于起点if (pos[s[i]] > ts) ts = pos[s[i]];pos[s[i]] = i;}cout << ans << " " << start << " " << start + l - 1 << endl;return 0;
}

Complexity Analysis

  • Time: O(n)O(n)O(n)
  • Space: O(n)O(n)O(n)

1026 String of Colorful Beads相关推荐

  1. 在 Android 中使用 OpenGL

    Android 通过 OpenGL 包含了对高性能 2D 和 3D 图形的支持,特别是 OpenGL ES API.OpenGL 是一个跨平台的图形 API,它为 3D 图形处理硬件规定了一个标准的软 ...

  2. android 自定义progressbar demo,Android 自定义进度条ColorfulProgressbar,原理简单、效果还行...

    效果图: demo效果演示 演示Demo 特性 与原生Progress相比,感觉更漂亮一点,可以显示进度值,背景凹凸感明显,进度条效果更加立体. 原理说明 额,挺简单的.不过感觉我的做法有点复杂了,我 ...

  3. cups ipp oracle,CUPS cups/ipp.c空指针引用拒绝服务漏洞

    BUGTRAQ ID: 35169 CVE(CAN) ID: CVE-2009-0949 Common Unix Printing System(CUPS)是一款通用Unix打印系统,是Unix环境下 ...

  4. 图像处理之简单综合实例(大米计数)

    图像处理之简单综合实例(大米计数) 一位网友给我发了几张灰度图像,说是他们单位的工业相机拍摄的,画质非常的清楚,他们 单位是农业科研单位,特别想知道种子的数量,他想知道的是每次工业相机拍摄种子图片中 ...

  5. coursera_poj_魔兽世界终结版

    五个下午的时间!!!!终于过了!! 有史以来做的最复杂的一个题 这是我迄今为止做的最复杂也最具有挑战的一个oj作业.虽然之前做过比这个规模一些作业项目,但是往往有简单的模块框架,模块之前的关系也只是有 ...

  6. Java知识——精华总结

    Java知识--精华总结 一.java概述与基础知识 1.何为编程? 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 为了使计算机能够理解人的意图,人类就必须 ...

  7. 2019ICPC(徐州) - Colorful String(哈希+二分+动态规划/回文自动机)

    题目链接:点击查看 题目大意:给出一个字符串,询问该字符串中的所有回文子串中,各有多少不同的字母 题目分析:这个题题意很简单,在比赛的时候看到字符串第一反应是哈希,哈希+暴力+线段树果不其然的T掉了. ...

  8. 2019徐州网络赛 G Colorful String 马拉车+后缀

    题目链接:https://nanti.jisuanke.com/t/41389 题解:马拉车处理回文串,每个位置记录后面每个字符出现的第一个位置,然后把每种字符额贡献加起来即可 #include< ...

  9. 19 ICPC 徐州网络赛 G. Colorful String(回文树)

    传送门 题意:求出给出的字符串中所有回文字符串的不同字符和. 思路:回文树+二进制表示字符 (例如 a==1<<0,b==1<<1,c==1<<2,d==1< ...

最新文章

  1. react引入多个图片_重新引入React:v16之后的每个React更新都已揭开神秘面纱。
  2. 【django轻量级框架】使用支付宝支付接口(沙箱)
  3. [html] 编写一个布局,让文字环绕在图片的周围
  4. macos big sur u盘安装_老款macbook机型欺骗补丁强制安装macOS11 Big Sur图文详解
  5. c语言答案知码,C语言笔试习题集答案和解析.doc
  6. MyEclipse + Tomcat 热部署问题
  7. 用VB.net实现对.ini文件的读写操作的类
  8. cordova 美洽_phonegap-cordova-美洽客服插件-ios
  9. 技术管理者需要认识管理活动的高杠杆率
  10. VMware软件安装与完全卸载
  11. ECharts 实现世界地图
  12. HashSet 集合
  13. 四川子苗电商:抖音直播安心购怎么解约?
  14. 【基础算法】最大公约数(Acwing872题)(辗转相除法)
  15. 【Unity-怎么做一个FPS游戏】一.场景的搭建和角色的移动
  16. 【Beta阶段】第六次Scrum Meeting
  17. Python: 既约分数
  18. web前端--音乐魔方旋转相册笔记(1)
  19. Dota2技能系统设计分析
  20. Git,Github,Gitee和Gitlab区别

热门文章

  1. 主成分分析(PCA)算法的主要流程
  2. 如何辨别CAD图纸版本是不是2004版本
  3. android网络请求框架汇总
  4. 公众号快速准确的添加粉丝,吸粉最佳方法。
  5. 一篇文章教会你利用Python网络爬虫获取穷游攻略
  6. 使用计算机断开终端连接,断开计算机访问连接的命令
  7. 吉林省白城市谷歌高清卫星地图下载
  8. xp系统开启iis服务器,WindowsXPHome版本安装IIS服务器方法
  9. c语言中 static int,c语言中static unsigned int n=0;是什么意思?请大师指点迷津,学生有礼了。...
  10. python抓取百度地图数据_Python 百度地图爬虫 - 搜索数据采集