码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • RGB(c++)


    问题 D: RGB

    题目描述
    给你一个长度为N,由R,G,B组成的字符串S。
    求有多少组(i,j,k),(0<=i 1.Si != Sj,Si != Sk且Sj != Sk
    2.j-i != k-j
    输入
    N,(1<=N<= 4000)
    S
    样例输入
    4
    RRGB
    样例输出
    1
    思路:求出满足条件1.的组数,再减去不满足条件2.,但满足条件1.的组数。
    解题:
    1.写三个循环,时间复杂度n^3很好理解,但是超时
    2.数据越界,改用long long类型
    3.成功

    #include
    using namespace std;
    
    int main()
    {
    	int n;
    	string a;
    	cin>>n;
    	cin>>a;
    	long long r=0,g=0,b=0;
    	for(int i=0;i<n;i++){
    		if(a[i]=='R') r++;
    		else if(a[i]=='G') g++;
    		else b++;
    	}
    	long long res = r*g*b;
    	for(int i=0;i<n;i++){
    		for(int x=1;;x++){
    			//最妙的地方就在这里了。
    			//条件二就是i和j跟j和k不能相隔的距离一样
    			int j = i+x;
    			int k = j+x;
    			//k+i = j+x+i = 2*i+2*x
    			//2*j = 2*i+2*x
    			//k+i = 2*j
    			//j-i = k-j
    			if(k>=n) break;
    			if(a[i]!=a[j]&&a[i]!=a[k]&&a[j]!=a[k]) res--;
    		}
    	}
    	cout<<res<<endl;
    	return 0;
     } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    在这里插入图片描述

    问题 C: gcd问题

    题目描述
    gcd也就是最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。a,b的最大公约数记为gcd(a,b),具体的例
    子有,gcd(12,12)=12,gcd(5,1)=1,gcd(4,6)=2。
    求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。
    现在,小明遇到了得到了一个正整数K,他想知道在这里插入图片描述的值为多少?

    温馨提示:没有思路可以点击这里学习~~

    输入
    K
    1<=K<=200

    输出
    在这里插入图片描述

    样例输入
    2
    样例输出
    9
    提示
    样例解释 gcd(1,1,1)+gcd(1,1,2)+gcd(1,2,1)+gcd(2,1,1)+gcd(1,2,2)+gcd(2,2,1)+gcd(2,1,2)+gcd(2,2,2)=9

    #include
    using namespace std;
    
    int gcd(int a,int b,int c)
    {
    	int i;
    	//当时忘了辗转相除法是怎么个样子了,直接最暴力解了
    	for(int i=min(a,min(b,c));i>=1;i--){
    		if(a%i==0&&b%i==0&&c%i==0){
    			return i;
    		}
    	}
    	return 1;
    }
    
    int main()
    {
    	int x;
    	int sum=0;
    	cin>>x;
    	for(int i=1;i<=x;i++){
    		for(int j=1;j<=x;j++){
    			for(int k=1;k<=x;k++){
    				sum += gcd(i,j,k);
    			}
    		}
    	}
    	cout<<sum;
    	return 0;
     } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
  • 相关阅读:
    JVM 堆外内存查看方法
    【MySQL】字节面试:分析死锁是怎么产生的?
    Python Day6列表进阶【零基础】
    linux-ubuntu-16.04 安装 java8、 firewalld、 mysql5.7、Redis 5.0.3、FastDFS、nginx1.18
    Python:实现fibonacci斐波那契算法(附完整源码)
    WORDPRESS 和 ELEMENTOR 一样吗?不同点在哪里?
    Prometheus集成springboot(六)
    linux进阶(脚本编程/软件安装/进程进阶/系统相关)
    基于python-django协同过滤豆瓣电影推荐系统
    echarts 主标题居中,副标题居右
  • 原文地址:https://blog.csdn.net/m0_65620244/article/details/127584398
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号