第九届蓝桥杯java B组—第六题递增三元组(详细介绍)
文章目录
- 1.大赛题目
- 2.代码实例1
- 3.运行结果
- 4.代码实例2
- 5.详细讲解
1.大赛题目
给定三个整数数组
A = [A1, A2, … AN],
B = [B1, B2, … BN],
C = [C1, C2, … CN],
请你统计有多少个三元组(i, j, k) 满足:
1. 1 <= i, j, k <= N
2. Ai < Bj < Ck
【输入格式】
第一行包含一个整数N。
第二行包含N个整数A1, A2, … AN。
第三行包含N个整数B1, B2, … BN。
第四行包含N个整数C1, C2, … CN。
对于30%的数据,1 <= N <= 100
对于60%的数据,1 <= N <= 1000
对于100%的数据,1 <= N <= 100000 0 <= Ai, Bi, Ci <= 100000
【输出格式】
一个整数表示答案
【输入样例】
3
1 1 1
2 2 2
3 3 3
【输出样例】
27
资源约定:
峰值内存消耗(含虚拟机) < 256M
CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
不要使用package语句。不要使用jdk1.7及以上版本的特性。
主类的名字必须是:Main,否则按无效代码处理。
2.代码实例1
public class Lanqiaoninthsix {static Scanner sc = new Scanner(System.in);// 输入第一行Nstatic int N = sc.nextInt();static int sum = 0;// 定义三个数组A、B、Cstatic int A[] = new int[N];static int B[] = new int[N];static int C[] = new int[N];public static void main(String[] args) {input();f();System.out.println(sum);}public static void input() {// for循环输入三个数组if(N>=1 && N<=100000) { //对于100%的数据,1 <= N <= 100000 0 <= Ai, Bi, Ci <= 100000 for(int i=0;i<N;i++) {A[i] = sc.nextInt();}for(int i=0;i<N;i++) {B[i] = sc.nextInt();}for(int i=0;i<N;i++) {C[i] = sc.nextInt();}}}public static void f() {for(int i=0;i<N;i++) {for(int j=0;j<N;j++) {for(int k=0;k<N;k++) {if(A[i]<B[j] && B[j]<C[k] ) { //Ai < Bj < Ck sum++;}}}}}
}
3.运行结果
3
1 1 1
2 2 2
3 3 3
27
以上这种暴力的方法可能会超时,下面看另外一种相似的解法
4.代码实例2
public class test {public static void main(String args[]) {Scanner scanner = new Scanner(System.in);Integer N = scanner.nextInt();//定义三个数组int A[] = new int[N];int B[] = new int[N];int C[] = new int[N];//初始化三个数组for(int i = 0;i<N;i++) {A[i] = scanner.nextInt();}for(int i = 0;i<N;i++) {B[i] = scanner.nextInt();}for(int i = 0;i<N;i++) {C[i] = scanner.nextInt();}//定义一个计数器,记录最终的结果数sum@SuppressWarnings("unused")//first是第二行数据中的第一个数比第一行数据中的数大的个数,two是第三行数据中的数比第一行数据中的第一个数大的个数,以此类推int sum = 0,first = 0,two = 0;//判断for(int i = 0;i<N;i++) {for(int j = 0;j<N;j++) {if(B[j]>A[i]) {first++;}System.out.println("first:"+first);}for(int k = 0;k<N;k++){if(C[k]>B[i]) {two++;}System.out.println("two:"+two);}sum += first*two;//每一轮循环之后都要将first、two重设为0first = 0;two = 0;}System.out.println(sum);//申请了资源要记得归还scanner.close();}
}
5.详细讲解
因为我们把第一行数据放到A数组里面了
把第二行数据放到B数组里面了
把第三行数据放到C数组里面了
所以
第一次最外层循环:
比较第二行数据中的第一个数2跟第一行数据中的所有的数比较
如果比其大的,则加1,所以第一次比较的结果为3。
同理,第三行数据中的所有的数跟第二行的第一个数进行比较,如果比其大
的,则加1,所以第二次比较的结果也为3。两个值相乘3*3=9;这是第一次循环的值
第二次最外层循环:
比较第二行数据中的第二个数2跟第一行数据中的所有的数比较
如果比其大的,则加1,所以第一次比较的结果为3。
同理,第三行数据中的所有的数跟第二行的第二个数进行比较,如果比其大
的,则加1,所以第二次比较的结果也为3。两个值相乘3*3=9;这是第二次循环的值
第三次最外层循环:
比较第二行数据中的第三个数2跟第一行数据中的所有的数比较
如果比其大的,则加1,所以第一次比较的结果为3。
同理,第三行数据中的所有的数跟第二行的第三个数进行比较,如果比其大
的,则加1,所以第二次比较的结果也为3。两个值相乘3*3=9;这是第三次循环的值
最终结果9+9+9=27,图解如下图所示:
第九届蓝桥杯java B组—第六题递增三元组(详细介绍)相关推荐
- 第九届蓝桥杯java B组—第三题复数幂(详细介绍)
文章目录 1.题目如下 2.代码实例 3.结果如下 4.代码讲解 5.详细讲解文件输出 1.题目如下 设i为虚数单位.对于任意正整数n,(2+3i)^n 的实部和虚部都是整数. 求(2+3i)^123 ...
- 第九届蓝桥杯 Java B组 第三题 复数幂 (详解)
蓝桥杯 加油 (ง •_•)ง 标题:复数幂 设i为虚数单位.对于任意正整数n,(2+3i)^n 的实部和虚部都是整数. 求 (2+3i)^123456 等于多少? 即(2+3i)的123456次幂, ...
- 2015年 第06届 蓝桥杯 Java B组 决赛真题详解及小结
蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...
- 2016年 第07届 蓝桥杯 Java B组 决赛真题详解及小结
蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...
- 2017年 第08届 蓝桥杯 Java B组 决赛真题详解及小结
蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 ...
- 2018年 第09届 蓝桥杯 Java B组 决赛真题详解及小结
蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...
- 2019年 第10届 蓝桥杯 Java B组 决赛真题详解及小结
蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2020年(第11届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...
- 2020年 第11届 蓝桥杯 Java B组 决赛真题详解及小结
蓝桥杯 Java B组 省赛决赛 真题详解及小结汇总[2013年(第4届)~2021年(第12届)] 第11届 蓝桥杯-第1.2次模拟(软件类)真题-(2020年3月.4月)-官方讲解视频 说明:大部 ...
- 2022年第十三届蓝桥杯Java B组第三题:字符统计
2022年第十三届蓝桥杯Java B组第三题:字符统计
最新文章
- C++,那些可爱的小陷阱(三)
- php swool协程,swoole如何实现协程
- 12_Android中HttpClient的应用,doGet,doPost,doHttpClientGet,doHttpClient请求,另外借助第三方框架实现网络连接的应用,
- java string document_java - String 和 document 的相互转换总结
- 修改date格式 java_如何用Java更改日期格式?
- 深度学习之卷积神经网络 AlexNet
- 博士仅用2周投中了篇论文,戏耍157家期刊,被Science报道!
- Flask实现登录功能【附完整Demo】
- spring中定时器的使用
- 电脑太慢了最简单的办法怎么弄_电脑感染病毒的10种症状及简单处理办法 电脑中病毒的症状介绍...
- 30天敏捷结果(1):总体认识Getting Result敏捷方法
- c#物联网_「物联网架构」Apache-Kafka:物联网数据平台的基石
- 【预测模型-ELAMN预测】基于海鸥算法优化ELMAN神经网络实现数据回归预测
- 拉格朗日函数最优化问题
- 免费下载 [discuz!插件] 404页死链优化SEO V2.6
- idea选中多行的一列、一竖(不是多行的全部内容)
- springboot搭建redis时提示RedisCommandExecutionException: CLUSTERDOWN Hash slot not served解决办法
- mes系统多少钱,企业要不要上mes系统?
- netstat,ss,nc ,wget,dig
- 将串口转换成TCP连接