7 solutions
-
0
水题 对于这个题目 我们可以发现的是 我们如果数组排序好后 从第一个地方往后面查找的话 差值越来越大 贪心的思想 只要差值没有减小的话 就没有继续下去的必要 看似n*n的复杂度 其实更接近nlogn 代码 #include #include <math.h> #include using namespace std; const int N=10010; int res[N]; int finmin(int t,int num[],int n) { int min=9999; for(int i=0;i<n;++i) { if(abs(num[i]-t)<=min) min=abs(num[i]-t); else break; } return min; } int main() { int n,c,ans=0; cin>>n>>c; for(int i=0;i<n;++i) { cin>>res[i]; } sort(res,res+n); while(c--) { int t; cin>>t;
ans+=finmin(t,res,n); } cout<<ans; return 0;
}
Information
- ID
- 280
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 8
- Tags
- # Submissions
- 266
- Accepted
- 51
- Uploaded By