三千里外欲封侯 2024-02-17 22:35 采纳率: 86.4%
浏览 0
已结题

蓝桥,二分有点出错,递增三元组

[蓝桥杯 2018 省 B] 递增三元组

题目描述

给定三个整数数组 $A = [A_1, A_2,\cdots, A_N]$,$B = [B_1, B_2,\cdots, B_N]$,$C = [C_1, C_2,\cdots,C_N]$。

请你统计有多少个三元组 $(i, j, k)$ 满足:

  1. $1 \le i, j, k \le N$
  2. $A_i < B_j < C_k$

输入格式

第一行包含一个整数 $N$。

第二行包含 $N$ 个整数 $ A_1, A_2,\cdots, A_N$。

第三行包含 $N$ 个整数 $ B_1, B_2,\cdots, B_N$。

第四行包含 $N$ 个整数 $ C_1, C_2,\cdots, C_N$。

输出格式

一个整数表示答案

样例 #1

样例输入 #1

3
1 1 1
2 2 2
3 3 3

样例输出 #1

27
#include <iostream>
#include <algorithm>
using namespace std;
int a[100000];
int b[100000];
int c[100000];
int check1(int x,int y)
{
    int left=0;
    int right=y;
    int ret=0;
    while(left<=right)
    {
        int mid=(left+right)/2;
        if(b[mid]>a[x])
        {
            ret=mid;
            mid=right-1;
        }
        if(b[mid]<a[x])
        {
            mid=left+1;
        }
    }
    return ret;
}
int check2(int x,int y)
{
    int left=0;
    int right=y;
    int ret=0;
    while(left<=right)
    {
        int mid=(left+right)/2;
        if(c[mid]>b[x])
        {
            ret=mid;
            mid=right-1;
        }
        if(c[mid]<b[x])
        {
            mid=left+1;
        }
    }
    return ret;
}
int main()
{
    int n;
    cin>>n;
    int ans=0;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    for(int i=0;i<n;i++)
    {
        cin>>b[i];
    }
    for(int i=0;i<n;i++)
    {
        cin>>c[i];
    }
    sort(a,a+n);
    sort(b,b+n);
    sort(c,c+n);
    for(int i=0;i<n;i++)
    {
        int j=check1(i,n);
        for(;j<n;j++)
        {
            int z=check2(j,n);
            for(;z<n;z++)
            {
                if(c[z]>b[j])
                {
                    ans=ans+1;
                }
            }
        }
    }
    cout<<ans;
    return 0;
}

这段代码运行不了,请指教哪里出错

  • 写回答

4条回答 默认 最新

  • threenewbee 2024-02-17 22:35
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月25日
  • 已采纳回答 2月17日
  • 创建了问题 2月17日

悬赏问题

  • ¥15 Opencv(C++)异常
  • ¥15 VScode上配置C语言环境
  • ¥15 汇编语言没有主程序吗?
  • ¥15 这个函数为什么会爆内存
  • ¥15 无法装系统,grub成了顽固拦路虎
  • ¥15 springboot aop 应用启动异常
  • ¥15 matlab有关债券凸性久期的代码
  • ¥15 lvgl v8.2定时器提前到来
  • ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
  • ¥15 cam_lidar_calibration报错