zoukankan      html  css  js  c++  java
  • 2018年第九届蓝桥杯省赛 递增三元组


    标题:递增三元组

    给定三个整数数组
    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


    请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。

    注意:
    main函数需要返回0;
    只使用ANSI C/ANSI C++ 标准;
    不要调用依赖于编译环境或操作系统的特殊函数。
    所有依赖的函数必须明确地在源文件中 #include <xxx>
    不能通过工程设置而省略常用头文件。

    题解:对b数组进行分析,结果就是累计b数组中每一个数对应的(a数组中小于该数的个数×c数组中大于该数的个数);

    #include<iostream>
    #include<algorithm>
    using namespace std;
    int a[100011],b[100011],c[100011],bb[100011];
    int main()
    {
            int n;
            scanf("%d",&n);
            for(int i=0;i<n;i++)
                    scanf("%d",&a[i]);
            for(int i=0;i<n;i++)
                    scanf("%d",&b[i]);
            for(int i=0;i<n;i++)
                    scanf("%d",&c[i]);
            sort(a,a+n);
            sort(b,b+n);
            sort(c,c+n);
            int x=n-1,y=n-1;
            while(x>=0&&y>=0){
                    if(b[y]>a[x])
                            bb[y]=x+1,y--;
                    //因为是从后向前,所以b[y]大于a[x]就是b[y]大于a[x]以及前面所有数
                    else
                            x--;
            }
            int ans=0;
            x=y=0;
            while(x<n&&y<n){
                    if(b[y]<c[x])
                            ans=ans+bb[y]*(n-x),y++;
                    //从前往后,所以b[y]小于c[x]就代表b[y]小于c[x]以及后面所有数
                    else
                            x++;
            }
            printf("%d
    ",ans);
            return 0;
    }
  • 相关阅读:
    nodeJS操作mongoDB常用api
    git命令
    Scala笔记(1)——基本知识
    Akka Java 中文文档
    训练:用gfsh执行常见的任务
    https://confluence.jnj.com/display/AAIM/Enterprise+Agile+Data+Services
    gfsh操作
    java知识
    maven使用之烦人的.lastUpdated文件
    idea相关操作
  • 原文地址:https://www.cnblogs.com/aeipyuan/p/10704487.html
Copyright © 2011-2022 走看看