2 条题解
-
10
54.和大于等于k(广赋张老师的题解)
#include<bits/stdc++.h> using namespace std; int main(){ int a[1000005],b[1000005],n,k; long long ans=0; //答案,有4组样例答案超过int,所用long long cin >> n >> k; for(int i=0;i<n;i++){cin>>a[i];}//输入数组a,b for(int i=0;i<n;i++){cin>>b[i];} sort(a,a+n);//对数组a,b排序(从小到大) sort(b,b+n); /*//第1种方法 两层for循环 但是有2个样例超时,总时间复杂度 O(n平方) for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(a[i]+b[j]>=k){ ans += n-j; break; } } } */ //第2种方法,双指针法,i向右移动,j向左移动,总时间复杂度O(n log n) int j=n-1; for(int i=0;i<n;i++){ for(;j>=0;j--){ if(a[i]+b[j]<k){// 找出此时不满足条件的边界j break; } } // 所以满足条件的 b 元素有:n - (j + 1) = n - j - 1 个 ans += n-j-1; } cout<<ans; return 0; } -
8
(解密后的)
nTYNWfOP#TZdecPLX%>nTYNWfOP#LWRZcTeSX%>nTYNWfOP#gPNeZc%<<<zz防止段错误>fdTYR<YLXPdaLNP<deO">>TYe<XLTYst<.><<<<TZd!!djYN,hTeS,deOTZsQLWdPt"><<<<NTYyeTPsYfWWaect"><<<<NZfeyeTPsYfWWaect">><<<<WZYR<WZYR<Yw<V"><<<<NTY<%%<Y<%%<V">><<<<gPNeZc#WZYR<WZYR%<LsYtw<MsYt"><<<<QZcsTYe<T<$<↓"<T<#<Y"<Tvvt<.><<<<<<<<NTY<%%<L(T*"><<<<:><<<<QZcsTYe<T<$<↓"<T<#<Y"<Tvvt<.><<<<<<<<NTY<%%<M(T*"><<<<:>><<<<dZcesLyMPRTYstw<LyPYOstt"<zz排序并使用双指针><<<<dZcesMyMPRTYstw<MyPYOstt">><<<<WZYR<WZYR<LYd<$<↓"><<<<TYe<U<$<Y<x<〓"><<<<QZcsTYe<T<$<↓"<T<#<Y"<Tvvt<.><<<<<<<<hSTWPsU<%$<↓<qq<L(T*<v<M(U*<%$<Vt<.><<<<<<<<<<<<Uxx"><<<<<<<<:><<<<<<<<LYd<v$<sY<x<〓<x<Ut"><<<<:>><<<<NZfe<##<LYd"><<<<cPefcY<↓">:>偏移量1919,加密器
- 1
信息
- ID
- 54
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 170
- 已通过
- 28
- 上传者