第九届蓝桥杯省赛C++B组 递增三元组 【 二分 】题解
发布日期:2021-05-07 08:50:10 浏览次数:24 分类:精选文章

本文共 1057 字,大约阅读时间需要 3 分钟。

目录

1.题目

给定三个整数数组

A=[A1,A2,…AN],

B=[B1,B2,…BN],
C=[C1,C2,…CN],

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

1≤i,j,k≤N

Ai<Bj<Ck
输入格式
第一行包含一个整数 N。

第二行包含 N 个整数 A1,A2,…AN。

第三行包含 N 个整数 B1,B2,…BN。

第四行包含 N 个整数 C1,C2,…CN。

输出格式

一个整数表示答案。

数据范围

1≤N≤105,
0≤Ai,Bi,Ci≤105
输入样例:
3
1 1 1
2 2 2
3 3 3
输出样例:
27

2.思路

思路:二分 先对三个数组进行sort排序,然后遍历b数组,对于b中的每一个数b[i],在a数组寻找最后一个小于b[i]的数的下标,这里我们记做l.再在c数组中寻找第一个大于b[i]的数的下标,这里我们记做r。a数组中,小于b[i]的数的个数为l+1,c数组中大于b[i]数的个数为n-r。因此当在三元递增组中,以b[i]为中间数的个数为(l+1)*(n-r)。遍历b数组,累加即为答案。

3.代码

#include
#include
using namespace std;typedef long long LL;const int N=1e5+10;int a[N],b[N],c[N];int main(){ int n; scanf("%d",&n); for(int i=0;i
=b[i]) //如果未找到小于b[i]的数,将x标记为-1,后续计算时 x+1==0 { l=-1; } int x=l; l=0,r=n-1; while(l
b[i]) r=mid; else l=mid+1; } if(c[l]<=b[i]) //如果未找到大于b[i]的数,将y标记为n,后续计算时 n-y==0; { r=n; } int y=r; res+=(LL)(x+1)*(n-y); } printf("%lld\n",res); return 0;}
上一篇:AcWing 1019. 庆功会 【 多重背包问题 + DP 】 题解
下一篇:CodeForces - 520B Two Buttons 【 逆向思维 || bfs 】 题解

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月29日 00时48分54秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

10-docker系列-docker文件共享和特权模式 2023-01-23
#C2#S2.2~S2.3# 加入 factory/objection/virtual interface 机制 2023-01-23
#C8# UVM中的factory机制 #S8.1.1# OOP 语言三大特性 systemverilog的支持 2023-01-23
#C8# UVM中的factory机制 #S8.1.4# 约束的重载 2023-01-23
#C8# UVM中的factory机制 #S8.2.3# 重载sequence哪些情形 2023-01-24
#C8# UVM中的factory机制 #S8.4.1# factory机制的实现 2023-01-24
900行c语言贪吃蛇,原生js实现的贪吃蛇网页版游戏完整实例 2023-01-24
ado读取多条oracle数据,Oracle ADO数据存取 2023-01-24
asp.mvc 4项目发布文件目录结构_如何用SpringBoot(2.3.3版本)快速搭建一个项目?文末有小彩蛋... 2023-01-24
aspen串联反应怎么输入_如何进步提升串联谐振试验装置的稳定性 2023-01-24
c++ string取子串_Integer与String的设计哲学 2023-01-24
c++ 数组批量赋值_数组之间不能赋值?穿个马甲吧! 2023-01-24
continue可以用if判断里面吗_谁能说说if()else()里的continue是干嘛的? 2023-01-24
ctrl c 和 ctrl v 不能用了_神奇操作,原来CTRL键还能这么用 2023-01-24
cytoscape安装java_Cytoscape史上最全攻略 2023-01-24
c语言程序设计年历显示,C语言程序设计报告《万年历》.doc 2023-01-24
C语言程序设计梁海英答案,1.5 习题 2023-01-24
c语言编写单片机中断,C语言AVR单片机中断程序写法 2023-01-24
ddr2的上电顺序_S5PV210 DDR2初始化 28个步骤总结 2023-01-24
excel中最常用的30个函数_Excel玩转数据分析常用的43个函数! 2023-01-24