Atcoder ABC162 D - RGB Triplets

2024-02-04 21:48
文章标签 atcoder rgb triplets abc162

本文主要是介绍Atcoder ABC162 D - RGB Triplets,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

D - RGB Triplets
链接:https://atcoder.jp/contests/abc162/tasks/abc162_d
题目大意:给你一个长度不超过4000的仅包含‘R’,‘G’,'B’的字符串,问满足Si, Sj, Sk(1<=i<j<k<=N)且j−i≠k−j互不相等有多少种情况
思路: 计算R,G,B分别有多少个,若直接暴力,肯定会超时,那么换个思路,满足j−i≠k−j的所有情况等于RGB减去不满足j-i ≠ k - j即 j - i = k - j,我们可以构造成j , i+j, 2 * i +j

代码:

#include <iostream>
using namespace std;int main()
{int N;string s;scanf("%d", &N);cin>>s;long long red, green, blue, result;red = green = blue = 0;for(int i = 0; i < s.size(); i++){if(s[i] == 'R')red++;if(s[i] == 'G')green++;if(s[i] == 'B')blue++;}result = red * green * blue;for(int i = 0; 2 * i < N; i++){for(int j = 0; 2 * i + j < N; j++){if(s[j] != s[i + j] && s[j] != s[2 * i + j] && s[i + j] != s[2 * i + j]){result--;}}}printf("%lld", result);return 0;
}

这篇关于Atcoder ABC162 D - RGB Triplets的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/678892

相关文章

AtCoder Beginner Contest 370 Solution

A void solve() {int a, b;qr(a, b);if(a + b != 1) cout << "Invalid\n";else Yes(a);} B 模拟 void solve() {qr(n);int x = 1;FOR(i, n) FOR(j, i) qr(a[i][j]);FOR(i, n) x = x >= i ? a[x][i]: a[i][x];pr2(

Excel查询颜色RGB值

1.选中单元格,点右键,设置单元格格式-填充-其他颜色-自定义,下面显示的就是该单元格颜色的RGB值 2.与十六进制换算: https://www.sioe.cn/yingyong/yanse-rgb-16/

AtCoder Beginner Contest 369 D - Bonus EXP 动态规划

原题链接: https://atcoder.jp/contests/abc369/tasks/abc369_d 思路:   这道题为什么要用动态规划呢,其实,对于第i个怪物,我们有打与不打两种处理方式,而对于打,我们是获得两倍的经验值,还是一倍的经验值,与我们打了奇数只怪物还是打了偶数只怪物有关了,因此我们定义dp[i][0] 为前i只怪物总共打了偶数次,dp[i][1] 为前i只怪物总

HSV颜色空间和RGB颜色空间相互转换C语言实现

HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。这个模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)。 色调H 用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色

RGB色转为灰度色算法-img2ascii_char

一、基础   对于彩色转灰度,有一个很著名的心理学公式: Gray = R0.299 + G0.587 + B0.114 二、整数算法   而实际应用时,希望避免低速的浮点运算,所以需要整数算法。   注意到系数都是3位精度的没有,我们可以将它们缩放1000倍来实现整数运算算法: Gray = (R299 + G587 + B114 + 500) / 1000   RGB一般是8位精度,现在缩放1

java 图像RGB,图像红、绿、蓝、灰 化

把图形进行红、绿、蓝、灰 化,并保存     /** * 名词解释: * 饱和度是指色彩的鲜艳程度,也称色彩的纯度。 * 灰度:使用黑色调表示物体,即用黑色为基准色,不同的饱和度的黑色来显示图像。 * 像素:如同摄影的相片一样,数码影像也具有连续性的浓淡阶调,我们若把影像放大数倍,会发现这些连续色调其实是由许多色彩相近的小方点所组成, * 这些小方点就是构成影像的最小单元——像素。是分

#FFFFFF 和RGB的相互转化

#00b3e9 --->RGB(0,179,233)的转化 float R = (float)((0x00b3e9 & 0xFF0000)>>16); --> 0 float G = (float)((0x00b3e9 & 0xFF00)>>8); --> 179 float B = (float)((0x00b3e9 & 0xFF)); --> 233

使用FFmpeg的AVFilter转换YUV到RGB

AVFilter 是 FFmpeg 库 libavfilter 的核心组件,提供了一套强大的音视频处理框架,用于对音视频流进行复杂的过滤、转换和效果处理。通过 AVFilter,开发者可以构建自定义的滤镜图(filter graph),实现各种音视频处理任务,如颜色空间转换、缩放、裁剪、特效添加等。 以下是对 AVFilter 的详细介绍,包括其架构、关键概念、使用方法以及示例代码。 1. A

[C++] 将LONG类型的color值转换为RGB值

转换原理: The calculation is: (65536 * Blue) + (256 * Green) + (Red) 'Convert RGB to LONG: LONG = B * 65536 + G * 256 + R       'Convert LONG to RGB:  B = LONG \ 65536  G = (LONG - B * 65536) \ 256  R =