题解 2194: 蓝桥杯2018年第九届真题-递增三元组

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

用二分减少一次for循环

解题思路:注意事项:参考代码:n=int(input())a=[0]+list(map(int,input().split()))b=[0]+list(map(int,input().split()))c=[0]+list(map(int,input().split()))a.sort()b.sort

蓝桥杯2018年第九届真题-递增三元组-二分查找时间复杂最短题解(Java代码)

解题思路:利用排序加二分查找的算法,代码中的end是每次算完之后小于key的最大的数的下标,将a中小于b的数的数量算出来之后再进行累加,可以减少c对b中小于c的数的访问时需要从小于c的b中的各个数对应大于a的数的累加。从而缩短计算时间,这个算法的复杂度是O(nlogn)注意事项:我语言组织不是很好,

蓝桥杯2018年第九届真题-递增三元组

摘要:将a从大到小排序,将c从小到大排序找到a中第一个比b小的数,那么剩下的n - i都符合c同理参考代码:#include<iostream> #include<bits/stdc++.h> usin……

递增三元组

摘要:解题思路:前缀和形式注意事项:参考代码:# 前缀和 n=int(input()) als=list(map(int,input().split())) bls=list(map(int,inpu……

二分-时间复杂度n*logn

摘要:解题思路:注意事项:参考代码:"""暴力做法:使用index查找元素 但是每次要进行排序 时间复杂度 n*n*logn正确做法:使用二分查找 在for之前排序一次 时间复杂度 n*logn二分思路:由……

以b数组当中间值,二分解决

解题思路:注意事项:参考代码:n=int(input())a=[0]+list(map(int,input().split()))b=[0]+list(map(int,input().split()))c=[0]+list(map(int,input().split()))a.sort()c.sort