精华内容
下载资源
问答
  • 递增三元组 问题描述 在数列 a[1], a[2], …, a[n] 中,如果对于下标 i, j, k 满足 0<i<j<k<n+1 且 a[i]<a[j]<a[k], 则称 a[i], a[j], a[k] 为一组递增三元组,a[j]为递增三元组的中心。  给定...

    递增三元组
    问题描述
    在数列 a[1], a[2], …, a[n] 中,如果对于下标 i, j, k 满足 0<i<j<k<n+1 且 a[i]<a[j]<a[k],
    则称 a[i], a[j], a[k] 为一组递增三元组,a[j]为递增三元组的中心。
      给定一个数列,请问数列中有多少个元素可能是递增三元组的中心。
    输入格式
      输入的第一行包含一个整数 n。
      第二行包含 n 个整数 a[1], a[2], …, a[n],相邻的整数间用空格分隔,表示给定的数列。
    输出格式
      输出一行包含一个整数,表示答案。
    样例输入
    5
    1 2 5 3 5
    样例输出
    2
    样例说明
      a[2] 和 a[4] 可能是三元组的中心。
    评测用例规模与约定
      对于 50% 的评测用例,2 <= n <= 100,0 <= 数列中的数 <= 1000。
      对于所有评测用例,2 <= n <= 1000,0 <= 数列中的数 <= 10000。

    import java.util.HashSet;
    import java.util.Scanner;
    import java.util.Set;
    
    public class llq1{
    	public static void main(String[] args) {
    		Scanner s=new Scanner(System.in);
    		int n=s.nextInt();
    	    int a[]=new int[n];
    	    Set ss=new HashSet();
    	    for(int i=0;i<n;i++) {
    	    	a[i]=s.nextInt();
    	    }
    	    for(int i=0;i<=a.length-3;i++) {
    	    	for(int j=1;j<=a.length-2;j++) {
    	    		for(int k=2;k<=a.length-1;k++) {
    	    			if(a[i]<a[j]&&a[j]<a[k]) {
    	    			ss.add(a[j]);
    	    			break;
    	    			}
    	    		}
    	    	}
    	    }
    	    System.out.println(ss.size());
    	}
    }
    

    set集合去重,依旧没有测试环境==

    展开全文
  • // 给定一个数列问有多少元素是递增三元组的中心 #include <stdio.h> int main() { int n,a[10],j,p=0,b[10],i,k,num; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } ...

    // 给定一个数列问有多少元素是递增三元组的中心 
    #include <stdio.h>
    int main() 

        int n,a[10],j,p=0,b[10],i,k,num;
        scanf("%d",&n);
        for(i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
        } 
        
        for(i=0;i<n-2;i++)
        {
         for(j=i+1;j<n-1;j++)
         {
             if(a[i]<a[j])//(1)
             {
                 for(k=j+1;k<n;k++)
                 {
                     if(a[j]<a[k])//(2)进行两次判断如果成立的话则满足中间的a[j]为三元组中心 
                     {
                      b[p]=j;//将满足条件的所有元素存入数组, 
                      p++;
                     
                     }
                 } 
             }
         }
        }
            num=p;//将元素数赋值给num,接下来将重复的元素去掉 
        for(i=0;i<n-1;i++)
        {
         if(b[i]!=0)
         {
           for(j=i+1;j<n;j++)
           {
             if(b[i]==b[j])
             {
               b[j]=0;
               num--;//如果发现相同的将原来总的数减去一个重复的
             }
           }
         }
        }
        printf("%d",num);
        return 0;
    }

    展开全文
  • 问题描述 ...则称 a[i], a[j], a[k] 为一组递增三元组,a[j]为递增三元组的中心。  给定一个数列,请问数列中有多少个元素可能是递增三元组的中心。 输入格式 输入的第一行包含一个整数 n。  ...

    问题描述
      在数列 a[1], a[2], …, a[n] 中,如果对于下标 i, j, k 满足 0<i<j<k<n+1 且 a[i]<a[j]<a[k],
    则称 a[i], a[j], a[k] 为一组递增三元组,a[j]为递增三元组的中心。
      给定一个数列,请问数列中有多少个元素可能是递增三元组的中心。
    输入格式
      输入的第一行包含一个整数 n。
      第二行包含 n 个整数 a[1], a[2], …, a[n],相邻的整数间用空格分隔,表示给定的数列。
    输出格式
      输出一行包含一个整数,表示答案。
    样例输入
    5
    1 2 5 3 5
    样例输出
    2
    样例说明
    a[2] 和 a[4] 可能是三元组的中心。
    代码实现

    import java.util.HashSet;
    import java.util.Scanner;
    public class four {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            //定义一个用来存放n个整数的数组
            int[] arr = new int[n];
            for (int i = 0; i < n; i++) {
                arr[i] = sc.nextInt();
            }
            System.out.println(fun(n,arr));
        }
    
        //实现求三元组的中心的个数,参数为数组的个数,存放输入整数的数组
        public static int fun(int n, int[] arr){
            //定义一个HashSet集合,用来存放满足条件的元素下标,
            // 一个三元组中心数可能是多个三元组的中心,所以遍历的时候HashSet集合不会重复存储
            HashSet<Integer> set = new HashSet<>();
            //嵌套循环遍历数组,要满足满足 0<i<j<k<n+1 且 a[i]<a[j]<a[k],数组习惯从0开始,所以左移一位
            for (int i = 0; i < n; i++) {
                for (int j = i + 1; j < n; j++) {
                    for (int k = j + 1; k < n; k++) {
                        if(arr[i] < arr[j] && arr[j] < arr[k]){
                            //存储满足条件的下标
                            set.add(j);
                        }
                    }
                }
            }
            //集合的长度就是递增三元组中心数的个数
            return set.size();
        }
    }
    

    代码运行

    10
    2 9 34 23 4 8 12 22 1 5
    4
    

    检验是否正确:
    2 9 34 23 4 8 12 22 1 5
    答案正好是4个

    展开全文
  • a[k],则称 a[i], a[j], a[k] 为一组递增三元组,a[j]为递增三元组的中心。 给定一个数列,请问数列中有多少个元素可能是递增三元组的中心。 【输入格式】 输入的第一行包含一个整数 n。 第二行包...

    【问题描述】
    在数列 a[1], a[2], …, a[n] 中,如果对于下标 i, j, k 满足 0<i<j<k<n+1 且 a[i]<a[j]<a[k],则称 a[i], a[j], a[k] 为一组递增三元组,a[j]为递增三元组的中心。
    给定一个数列,请问数列中有多少个元素可能是递增三元组的中心。
    【输入格式】
    输入的第一行包含一个整数 n。
    第二行包含 n 个整数 a[1], a[2], …, a[n],相邻的整数间用空格分隔,表示给定的数列。
    【输出格式】
    输出一行包含一个整数,表示答案。
    【样例输入】
    5
    1 2 5 3 5
    【样例输出】
    2
    【样例说明】
    a[2] 和 a[4] 可能是三元组的中心。
    【评测用例规模与约定】
    对于 50% 的评测用例,2 <= n <= 100,0 <= 数列中的数 <= 1000。
    对于所有评测用例,2 <= n <= 1000,0 <= 数列中的数 <= 10000。
    思路:
    枚举每个元素
    该元素与前面的元素比较,找到小的即可
    该元素与后面的元素比较,找到大的即可
    上面两项为真,即说明当前元素可以作为三元组的中心

    (这个思路太棒了,而且还不用考虑是否重复[向大佬学习])

    #include<stdio.h>
    #define N 1000
    int main()
    {
    	int n,i,j,k,p,q;
    	int s = 0;
    	char a[N];
    	scanf("%d",&n);
    	for(i = 0;i < n;i ++)
    	scanf("%d",&a[i]);
    	for(i = 1;i < n - 1;i ++)
    	{
    		p = q = 0;
    		for(j = i - 1;j >= 0;j --)
    		{
    			if(a[j] < a[i])
    			{
    				p = 1;
    				break;
    			}
    		}
    		for(k = i + 1;k < n; k++)
    		{
    			if(a[k] > a[i])
    			{
    				q = 1;
    				break;
    			}
    		}
    		if(p == 1 && q == 1)//如果都存在,则s++;
    			s ++;
    	}
    	printf("%d",s); 
    	return 0;
     } 
    
    

    【我当时是这样想的,枚举三个,再判断,

     for(int i = 0;i < n; i ++)
     	for(int j = 0;j < n;j ++)
     		for(int k = 0;j < n;j ++)
     		{
     			if(i < j && j < k)
     			if(a[i] < a[j] && a[j] < a[k])
     			s ++;
    		 }
    

    /*如果输入的是
    5
    1 2 5 3 5
    那么就会有三种情况:
    1 2 5
    1 2 3
    2 3 5
    然后还要考虑中心数重复的问题
    (OMG)简直复杂的要死,而且时间复杂度是O(n^3)】

    展开全文
  • 第六题 递增三元组 题目 【问题描述】 在数列 a[1], a[2], …, a[n] 中,如果对于下标 i, j, k 满足 0<i<j<k<n+1 且 a[i]<a[j]<a[k],则称 a[i], a[j], a[k] 为一组递增三元组,a[j]为递增三元组...
  • 【问题描述】 在数列 a[1], a[2], …, a[n] 中,如果...则称 a[i], a[j], a[k] 为一组递增三元组,a[j] 为递增三元组的中心。 给定一个数列,请问数列中有多少个元素可能是递增三元组的中心。 【输入格式】 第一行...
  • 5.递增三元组的中心 水题:三层for,最后一层找到就break掉,num++; 6.数位递增 水题:搞一个数组,然后搞一个函数,每次把对10取余的余数存入然后倒着看是不是递增就行了。 7.单词hello 思路:第一次不是元音字母的...
  • 蓝桥杯模拟赛】第六题 递增三元组(java实现) 题目: 【问题描述】 在数列 a[1], a[2], …, a[n] 中,如果对于下标 i, j, k 满足 0<i<j<k<n+1 且 a[i]<a[j]<a[k],则称 a[i], a[j], a[k] 为一...
  • 2020蓝桥杯模拟赛

    千次阅读 2020-03-19 15:05:28
    } 第七题 问题描述 在数列 a[1], a[2], …, a[n] 中,如果对于下标 i, j, k 满足 0 给定一个数列,请问数列中有多少个元素可能是递增三元组的中心。 输入格式 输入的第一行包含一个整数 n。 第二行包含 n 个整数 a...
  • 2021年第十二届蓝桥杯模拟赛(第四期)题目和解析(java
  • 第六题 递增三元组 题目 【问题描述】 在数列 a[1], a[2], …, a[n] 中,如果对于下标 i, j, k 满足 0<i<j<k<n+1 且 a[i]<a[j]<a[k],则称 a[i], a[j], a[k] 为一组递增三元组,a[j]为递增三元组...
  • 2020蓝桥杯模拟赛

    2020-10-10 10:03:29
    文章目录 1:单位变换 2:约数个数 3:叶节点数 4:数字9 5:数位递增的数 6:递增三元组 8:长草 9:序列计数 10:晚会节目单 1:单位变换 【问题描述】 在计算机存储中,15.125GB是多少MB? 【答案提交】 这是一道...
  • 2020年蓝桥杯模拟赛(Python)

    千次阅读 2021-02-17 14:56:24
    递增三元组 在数列 a[1], a[2], ..., a[n] 中,如果对于下标 i, j, k 满足 0 如果使用暴力的话,会导致时间复杂度太高,于是使用三个数组纪录最大值和最小值,最大值从后往前遍历,而最小值从左到右遍历,构造完成...
  • 蓝桥杯2020年蓝桥杯模拟赛(JAVA)

    千次阅读 2020-04-02 13:51:39
    递增三元组7.音节判断8. 长草9.序列计数 1. 单位变换 标题: 熊怪吃核桃 【问题描述】 在计算机存储中,15.125GB是多少MB? 【答案提交】 这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数...
  • 则称 a[i], a[j], a[k] 为一组递增三元组,a[j]为递增三元组的中心。  给定一个数列,请问数列中有多少个元素可能是递增三元组的中心。 输入格式  输入的第一行包含一个整数 n。  第二行包含 n 个整数 a[1], a[2]...
  • 2020蓝桥杯校内模拟赛

    千次阅读 2020-03-14 12:07:25
    一、 1200000有多少个约数(只计算正约数)。 答案:96 二、 在计算机存储中,15.125GB是多少MB?...一个正整数如果任何一个数位不大于右边相邻的数位,则称为一个数位递增的数,例如1135是一个数...
  • 递增三元组 1.单位换算 问题描述  在计算机存储中,15.125GB是多少MB? 答案提交  这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法...
  • 文章目录第四题 数字9第五题 数位递增的数第六题 递增三元组第七题 音节判断第九题 序列计数 第四题 数字9 【问题描述】 在1至2019中,有多少个数的数位中包含数字9? 注意,有的数中的数位中包含多个9,这个数只算...
  • 2020年蓝桥杯校内模拟赛

    千次阅读 2020-03-30 11:33:37
    这次校内模拟赛颇为简单,笔者在差不多两个半小时即做完了全部的题目,也取得了还挺不错的成绩,下面我就给大家分享一下自己的代码。1-4题其实不需要代码即可解决,笔者在此就不多阐述了。
  • 2020年4月份蓝桥杯模拟赛C/C++B组第一题 15.125GB第二题 约数个数第三题 叶结点数第四题 数字9第五题 数位递增的数第六题 递增三元组第七题 音节判断第八题 种草第九题 序列计数第十题 晚会节目单 第一题 15.125GB ...
  • 蓝桥杯校内模拟赛

    千次阅读 多人点赞 2020-03-09 18:57:27
    蓝桥杯校内模拟赛A 约数B 内存C 数位为9D 树的叶子节点E 字符串F 数组G 逆序数H bfs A 约数 1200000有多少个约数(只计算正约数)。 #include<bits/stdc++.h> using namespace std; int main(){ int ans = ...
  • 2020年蓝桥杯第十一届校内真题解析--算法设计--递增三元组的中心比赛记录问题描述输入格式输出格式样例输入样例输出样例说明评测用例规模与约定解析 比赛记录 本人于2020年3月14日14:00~18:00,参加了本校组织的...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 194
精华内容 77
关键字:

蓝桥杯模拟赛递增三元组