码迷,mamicode.com
首页 > 其他好文 > 详细

P1571 眼红的Medusa

时间:2020-03-20 12:56:35      阅读:49      评论:0      收藏:0      [点我收藏+]

标签:有一个   时间   png   优化   style   algorithm   超时   info   inf   

 第一眼看到这道题就是想排序一下然后接着查找就行了,时间复杂度为O(n^2),

但当看到题目给的数据范围时便发现这种做法非超时不可,于是便要对查找进行优化,进而想到二分查找

时间复杂度为O(logN),很符合题目的潜规则 要求。

题目有个小坑:输出顺序要求是科技进步奖的输入顺序,因此不能对科技排序,但要对特殊贡献进行排序。

然后进行二分查找。

还有一个点需要注意的是题目的数据范围很大,数据要开大一点。

技术图片

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 using namespace std;
 5 long long a[200010], b[200010];
 6 int n, m;
 7 bool yes(long long  temp){
 8     long long l = 1, r = m;
 9     while(l <= r){
10         long long  mid = l + (r - l) / 2;
11         if(temp == b[mid])
12             return true;
13         else if(temp < b[mid])
14             r = mid - 1;
15         else
16             l = mid + 1;
17     }
18     return false;
19 }
20 int main(){
21     cin >> n >> m;
22     for(int i = 1; i <= n; i ++)
23         scanf("%lld",&a[i]);
24     for(int i = 1; i <= m; i ++)
25         scanf("%lld",&b[i]);
26     sort(b + 1, b + m + 1);
27     for(int i = 1; i <= n; i ++){
28         if(yes(a[i]))
29             cout << a[i] <<  ; 
30     }
31     return 0;
32 }

 

P1571 眼红的Medusa

标签:有一个   时间   png   优化   style   algorithm   超时   info   inf   

原文地址:https://www.cnblogs.com/pureayu/p/12530814.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!