AtCoder Beginner Contest 162 D.RGB Triplets
AtCoder Beginner Contest 162 D.RGB Triplets
题目链接
Problem Statement
We have a string S of length N consisting of R, G, and B.
Find the number of triples (i,j,k)(1≤i<j<k≤N)(i, j, k) \ (1≤i<j<k≤N)(i,j,k) (1≤i<j<k≤N) that satisfy both of the following conditions:
- Si≠Sj,Si≠Sk,andSj≠Sk.S_i≠S_j, S_i≠S_k, and S_j≠S_k.Si=Sj,Si=Sk,andSj=Sk.
- j−i≠k−j.j−i≠k−j.j−i=k−j.
Constraints
- 1≤N≤40001≤N≤40001≤N≤4000
- S is a string of length N consisting of R, G, and B.
Input
Input is given from Standard Input in the following format:
N
S
Output
Print the number of triplets in question.
Sample Input 1
4
RRGB
Sample Output 1
1
Sample Input 2
39
RBRBGRBGGBBRRGBBRRRBGGBRBGBRBGBRBBBGBBB
Sample Output 2
1800
这题首先找所有三元组的个数,然后用循环遍历去掉不符合条件的三元组即可,复杂度 O((n2)2)O((\frac{n}{2})^2)O((2n)2),AC代码如下:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;int main(){int len;string s;cin>>len>>s;ll s1=0,s2=0,s3=0,sum=0;for(int i=0;i<len;i++){if(s[i]=='R') sum+=s2*s3,s1++;if(s[i]=='G') sum+=s1*s3,s2++;if(s[i]=='B') sum+=s1*s2,s3++;}for(int i=0;i<len;i++){for(int j=i;j<len;j+=2){if(s[i]!=s[j] && s[i]!=s[(i+j)/2] && s[j]!=s[(i+j)/2]) sum--;}}cout<<sum;return 0;
}
AtCoder Beginner Contest 162 D.RGB Triplets相关推荐
- AtCoder Beginner Contest 167 D Teleporter 找周期
AtCoder Beginner Contest 167 比赛人数11940 比赛开始后15分钟看到A题,之后每隔一分钟,看到一道题,在比赛开始后第21分钟看到所有题 AtCoder Begin ...
- AtCoder Beginner Contest 202 D - aab aba baa(组合计数,字典序)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Problem 有 AAA 和 aaa,BBB 个 bbb ,可以使用这 A+BA+BA+B 个字符任 ...
- AtCoder Beginner Contest 197 题解(A ~ F)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Rotate B - Visibility C - ORXOR D - Opposite ...
- AtCoder Beginner Contest 198 (A ~ F)题解
目录 A. Div B. Palindrome with leading zeros C. Compass Walking D. Send More Money E. Unique Color F. ...
- AtCoder Beginner Contest 215 G - Colorful Candies 2
AtCoder Beginner Contest 215 G - Colorful Candies 2 有n个糖果,每个糖果有着一个颜色a[i],每次拿k个糖果期望拿到E(x)个不同颜色的糖果,求出k ...
- AtCoder Beginner Contest 215 F - Dist Max 2
AtCoder Beginner Contest 215 F - Dist Max 2 平面上有一系列的点(xi,yi)(x_i,y_i)(xi,yi),定义两点(xi,yi),(xj,yj)(x ...
- AtCoder Beginner Contest 215 E - Chain Contestant
AtCoder Beginner Contest 215 E - Chain Contestant 给出一个只包括A~J的字符串,定义一种子序列为:在这个子序列中,相同的字符必定连续出现,求出这样的子 ...
- AtCoder Beginner Contest 204 F Hanjo 2
AtCoder Beginner Contest 204 F Hanjo 2 H宽,W长的二维平面上,用1 * 1或者2 * 1的地砖来铺,要求铺满,求出方案数. 数据范围H <= 6, W & ...
- Caddi Programming Contest 2021(AtCoder Beginner Contest 193) 题解
Caddi Programming Contest 2021(AtCoder Beginner Contest 193) A - Discount 打折浮点数除即可 B - Play Snuke 枚举 ...
- Mynavi Programming Contest 2021(AtCoder Beginner Contest 201)题解
文章目录 A - Tiny Arithmetic Sequence B - Do you know the second highest mountain? C - Secret Number D - ...
最新文章
- spring mvc后端代码实现弹出对话框_Spring(3)——事务管理和MVC
- C++命名空间(namespace)
- finishBeanFactoryInitialization 处理预实例化Bean
- 前端有用JavaScript技巧
- java集合转字符串,Java集合将字符串转换为字符列表
- 你见过错误 CS0234...吗?
- ctb伺服驱动器说明书_安川伺服驱动器SGDV报警原因及处理措施
- LBRY:美SEC对我们的指控将威胁到整个加密货币行业
- 简谈PCB设计软件对比
- centos7.6安装Kubernetes1.14.1集群
- li序号 ul_ul ol li的序号编号样式
- 为什么使用服务器端渲染 (SSR)?
- 【2019春招准备:A1】
- mysql连接两个字段_sql如何将二个字段连接在一起
- 操作系统【动态分区分配算法——首次适应算法、最佳适应算法、最坏适应算法、临近适应算法】
- 不小心删了自己的注册表怎么办
- 如何在Windows终端中使用电力线,书呆子字体,Cascadia代码,WSL和oh-my-posh进行漂亮提示
- [数据分析]-ubuntu下解决anaconda环境下matplotlib绘制图表时中文显示乱码问题
- Go语言?对微信约战棋牌网站搭建新技术怎么看?
- ]视音频编解码技术零基础学习方法
热门文章
- odoo使用word中的MERGEFIELD合并域和python包mailmerge来生成word文档
- 估计很多人不知道:在PowerPoint中插入图片的三种方式用法和解析
- PowerPoint.Application win32 操作ppt 复制 新建 插入图片
- AR和VR,有哪些知名的开源平台
- python中floor_Python torch.floor方法代码示例
- 阿里开发规约之编程规约(4)
- 云计算防止入坑之通过跑分看云服务器的性能,给各位云计算入门者的一些建议
- 微信小程序连接onenet控制RGB三色灯
- 阅读心得:JDE:Towards Real-Time Multi-Object Tracking
- HTML炫彩按钮,PS打造炫彩的开始图标按钮