当前位置: 首页 > wzjs >正文

大学网站建设管理制度做网站前端

大学网站建设管理制度,做网站前端,世界室内设计公司排名,wordpress图片站教程6134. 哞叫时间II Week 1 2月20日 农夫约翰正在试图向埃尔茜描述他最喜欢的 USACO 竞赛,但她很难理解为什么他这么喜欢它。 他说「竞赛中我最喜欢的部分是贝茜说『现在是哞哞时间』并在整个竞赛中一直哞哞叫」。 埃尔茜仍然不理解,所以农夫约翰将竞赛…



6134. 哞叫时间II

Week 1
2月20日


农夫约翰正在试图向埃尔茜描述他最喜欢的 USACO 竞赛,但她很难理解为什么他这么喜欢它。

他说「竞赛中我最喜欢的部分是贝茜说『现在是哞哞时间』并在整个竞赛中一直哞哞叫」。

埃尔茜仍然不理解,所以农夫约翰将竞赛以文本文件形式下载,并试图解释他的意思。

竞赛被定义为一个包含 N N N 个整数的数组 a 1 , a 2 , … , a N a_1,a_2,…,a_N a1,a2,,aN

农夫约翰定义哞叫为一个包含三个整数的数组,其中第二个整数等于第三个整数,但不等于第一个整数。

一种哞叫被称为在竞赛中发生,如果可以从数组中移除整数,直到只剩下这一哞叫。

由于贝茜据称「在整个竞赛中一直哞哞叫」,请帮助埃尔茜计算竞赛中发生的不同哞叫的数量!

两种哞叫是不同的,如果它们并非由相同的整数以相同的顺序组成。

输入格式

输入的第一行包含 N N N

第二行包含 N N N 个空格分隔的整数 a 1 , a 2 , … , a N a_1,a_2,…,a_N a1,a2,,aN

输出格式

输出竞赛中发生的不同哞叫的数量。

注意这个问题涉及到的整数可能需要使用 64 位整数型(例如,Java 中的 “long”,C/C++ 中的 “long long”)。

数据范围

1 ≤ N ≤ 1 0 6 1 \le N \le 10^6 1N106,
1 ≤ a i ≤ N 1 \le a_i \le N 1aiN

输入样例:
6
1 2 3 4 4 4
输出样例:
3
样例解释

竞赛包含三种不同的哞叫:1 4 42 4 43 4 4


题目理解

题目要求统计数组中所有满足 abb 形式的三元组子序列的数量,其中 a != b。也就是说,我们需要找到所有满足以下条件的子序列:

  1. 子序列长度为 3。
  2. 第二个和第三个元素相同,且第一个元素与它们不同。

做题思路

1. 统计每个数字的总出现次数
  • 使用 Counter 统计数组中每个数字的总出现次数,存储在 cnt1 中。
  • 这一步的目的是为了后续判断某个数字 b 是否可以作为 abb 中的 b(即 b 至少出现两次)。
2. 统计到每个位置为止的不同数字的个数
  • 使用一个数组 left 和一个集合 vis,从左到右遍历数组,记录到每个位置为止的不同数字的个数。
  • left[i] 表示从数组开头到位置 i(不包括 i)为止,有多少个不同的数字。
  • 这一步的目的是为了快速计算某个 b 对应的 a 的个数。
3. 倒序遍历,统计每个 b 对应的 a 的个数
  • 使用一个字典 cnt2 记录从后往前遍历时每个数字的出现次数。
  • 当某个数字 b 第二次出现时(即找到倒数第二个 b),计算其对应的 a 的个数:
    • a 的个数为 left[i],即倒数第二个 b 前面不同数字的个数。
    • 如果 b 的总出现次数大于 2,说明倒数第二个 b 前面还有 b,需要减去重复的情况。
  • 将每个 b 对应的 a 的个数累加到答案 ans 中。
4. 输出结果
  • 最终输出 ans,即所有满足条件的 abb 子序列的数量。


复杂度分析

  1. 时间复杂度:(O(n)),其中 (n) 是数组的长度。我们只需要遍历数组两次(一次正向,一次反向)。
  2. 空间复杂度:(O(n)),用于存储 cnt1cnt2left


code:

from collections import Counter, defaultdictn = int(input())
a = list(map(int, input().split()))
ans = 0# 统计到每个位置为止的不同数字的个数
left = [0] * n
vis = set()
for i in range(n):left[i] = len(vis)vis.add(a[i])cnt1 = Counter(a)  # 统计每个数字的总出现次数
cnt2 = defaultdict(int)# 倒序遍历,统计每个 b 对应的 a 的个数
for i in range(n - 1, -1, -1):cnt2[a[i]] += 1if cnt2[a[i]] == 2:  # 找到倒数第二个ba_count = left[i]  # a的个数if cnt1[a[i]] > 2:  # 减去重复的情况a_count -= 1ans += a_count
print(ans)


END
如果有更多问题或需要进一步的帮助,可以在评论区留言讨论哦!
如果喜欢的话,请给博主点个关注 谢谢


文章转载自:

http://s8hFYrtq.tgdys.cn
http://VFC3F1VD.tgdys.cn
http://XOlKaQEq.tgdys.cn
http://s3c5tG81.tgdys.cn
http://nAQHVCrF.tgdys.cn
http://JOiM2wwR.tgdys.cn
http://jb5fh24q.tgdys.cn
http://5HG94Y71.tgdys.cn
http://11VIzCCQ.tgdys.cn
http://cqAbse2L.tgdys.cn
http://1rgjrJB3.tgdys.cn
http://KqIzuEdX.tgdys.cn
http://rkmL2PeT.tgdys.cn
http://GcXTKVpx.tgdys.cn
http://jpUw0w64.tgdys.cn
http://XmoSH6zV.tgdys.cn
http://9xTJfAKU.tgdys.cn
http://jbJ3mzcm.tgdys.cn
http://Cwo4RZnW.tgdys.cn
http://tVLNy3wK.tgdys.cn
http://M2SZXKVJ.tgdys.cn
http://z6RcACaI.tgdys.cn
http://ydc7Lugi.tgdys.cn
http://29qM3CTK.tgdys.cn
http://jKdjU0JF.tgdys.cn
http://VBrGb9Yv.tgdys.cn
http://8vbQBjNC.tgdys.cn
http://d3ijD7Nk.tgdys.cn
http://uNAz7Zew.tgdys.cn
http://tdhbEYLA.tgdys.cn
http://www.dtcms.com/wzjs/648139.html

相关文章:

  • 做了网站应该如何推广住建厅官方网
  • 义乌好品质自适应网站建设天津招标信息网官网
  • 旅游网站静态模版下载句容网站建设
  • 连云建网站公司星火教育培训机构
  • 旅游电子商务网站有哪些如何成立工作室
  • 做淘宝联盟网站海口网站制作价格
  • 南京百度网站制作网站外包 博客
  • 网站建设这个行业怎么样百度seo怎么提高排名
  • 网站开发时app打开很慢岳麓区网站建设
  • 企业网站建设搜集资料哪家网站开发好
  • 怎么样用手机做网站关键词收款网站怎么建设
  • 亚马逊网站建设资料网站建设word文档
  • 网站建设的整体流程给企业做免费的推广
  • dw做网站龙岗网站建设公司哪家口碑好
  • 建网站对企业的作用做微信公众号的网站
  • 网站轮播怎么做海外服务器 vps
  • 网站 地区加关键词中小企业网站建设与管理
  • 河南国基建设集团--官方网站个人制作网站
  • 找谁做网站优化wordpress主题超2m
  • 免费推广的网站平台网站开发实训心得体会
  • 网站建设书籍下载九九建筑网
  • 太原市网站建设网站建设二手网站的建设费用包括
  • 搭建php网站环境三亚网友
  • 网站销售好做吗班级建设网站
  • 用织梦做网站费用网页美工设计教程百度网盘
  • 扁平化 公司网站外贸网站有哪些推广
  • 网站建设人文类wordpress伪静态404
  • 韶关营销网站开发网站规划模板下载
  • wordpress会员收费权限泰安网站seo
  • 族谱网站开发2008r2网站建设