传送门:D - RGB Triplets

 题意:给你一个只含‘R’,‘G’,‘B’的字符串,求有多少个长度为3且每个字符都不相等,并且第一第二和第二第三的区间长度不同的子序列.

题解:统计每个字符各有多少,算出所有两两不同的子序列个数然后减去区间长度相等的个数即可

代码:

 1 #include <iostream>
2 #include <cstdio>
3 #include <cstring>
4 #include <cmath>
5 #include <algorithm>
6 #include <stack>
7 #include <queue>
8 #include <vector>
9 #include <map>
10 #include <set>
11 #include <unordered_set>
12 #include <unordered_map>
13 #define ll long long
14 #define fi first
15 #define se second
16 #define pb push_back
17 #define me memset
18 const int N = 1e6 + 10;
19 const int mod = 1e9 + 7;
20 using namespace std;
21 typedef pair<int,int> PII;
22 typedef pair<long,long> PLL;
23
24 int n;
25 ll cnt=0;
26 ll r,g,b;
27 string s;
28
29 int main() {
30 ios::sync_with_stdio(false);
31 cin>>n>>s;
32 for(int i=0;i<n;++i){
33 for(int j=i+1;j<n;++j){
34 int k=j+(j-i);
35 if(k>n-1) continue;
36 if(s[i]!=s[j] && s[j]!=s[k] && s[i]!=s[k]) cnt++;
37 }
38 }
39
40 for(int i=0;i<n;++i){
41 if(s[i]=='R') r++;
42 else if(s[i]=='G') g++;
43 else b++;
44 }
45 printf("%lld\n",r*g*b-cnt);
46
47
48 return 0;
49 }

 

最新文章

  1. webpack使用优化(基本篇)
  2. java多线程学习
  3. 如何编译Less
  4. SwipeRefreshLayout
  5. 原 Linux搭建SVN 服务器2
  6. hdu 4578 Transformation(线段树)
  7. 常用Json
  8. C# 自定义控件的一些文章和博客
  9. linux终端下文件不同颜色的含义
  10. OpenLayer
  11. 权限管理系统 mysql 数据脚本
  12. maven核心概念--生命周期
  13. Delphi7第三方控件
  14. paddlepaddle
  15. GIS 案例教程-蜂窝多边形制作模型
  16. jquery()后续版本中,live()取消后使用on()实现功能写法
  17. 【python】理解循环:for,while
  18. 如何为linux系统设置全局的默认网络代理
  19. Laravel 5.5 + Vue 开发单页应用
  20. Zabbix学习之路(三)之使用SMTP发送邮件报警及定制邮件报警内容

热门文章

  1. 串的模式匹配算法1 BF算法
  2. 了解一下ajax
  3. Java基础进阶类名整理
  4. Nginx安装步骤及本地浏览器不通解决方案,Nginx在Linux发布项目,Tomcat 与本地浏览器不通解决方案
  5. python列表字符串集合常用方法
  6. 【ORA】ORA-39002,ORA-39070,ORA-29283, ORA-06512,ORA-29283解决办法
  7. 【DBA】非常好的一个脚本网站
  8. SpringBoot Logback无法获取配置中心属性
  9. LeetCode349. 两个数组的交集
  10. Kubernetes 升级过程记录:从 1.17.0 升级至最新版 1.20.2