1587. Eat or Be Eaten
2011-05-11 13:53
288 查看
二分查找小于目标元素的最后一个元素的位置,注意每一组元素是不需要去重复的。
-------------------------------------------------------------------------------------------------------
1 #include <iostream>
2 #include <algorithm>
3 #include <memory.h>
4 using namespace std;
5 int A[20001];
6 int B[20001];
7 int cmp(const void* a, const void* b)
8 {
9 return *(int*)a-*(int*)b;
10 }
11 int bnr(int h,int r,int x)
12 {
13 int mid=(h+r)/2;
14 if(B[r-1]<x)
15 return r;
16 else if(B[0]>=x)
17 return 0;
18 while(h<=r)
19 {
20 mid=(h+r)/2;
21 // cout<<nb[mid]<<" "<<x<<endl;
22 if(B[mid]>=x)
23 r=mid-1;
24 else
25 h=mid+1;
26 }
27 return h;
28 }
29 int main()
30 {
31 int t;
32 cin>>t;
33 while(t--)
34 {
35 memset(A,0,sizeof(A));
36 memset(B,0,sizeof(B));
37 int n,m;
38 cin>>n>>m;
39 for(int i=0;i<n;i++)
40 cin>>A[i];
41 for(int i=0;i<m;i++)
42 cin>>B[i];
43 qsort(A,n,sizeof(A[0]),cmp);
44 qsort(B,m,sizeof(B[0]),cmp);
45 int ans=0;
46 for(int i=0;i<n;i++)
47 {
48
49 int tem=bnr(0,m,A[i]);
50 // cout<<tem<<endl;
51 ans+=tem;
52 }
53 cout<<ans<<endl;
54 }
55
56 }
-------------------------------------------------------------------------------------------------------
1 #include <iostream>
2 #include <algorithm>
3 #include <memory.h>
4 using namespace std;
5 int A[20001];
6 int B[20001];
7 int cmp(const void* a, const void* b)
8 {
9 return *(int*)a-*(int*)b;
10 }
11 int bnr(int h,int r,int x)
12 {
13 int mid=(h+r)/2;
14 if(B[r-1]<x)
15 return r;
16 else if(B[0]>=x)
17 return 0;
18 while(h<=r)
19 {
20 mid=(h+r)/2;
21 // cout<<nb[mid]<<" "<<x<<endl;
22 if(B[mid]>=x)
23 r=mid-1;
24 else
25 h=mid+1;
26 }
27 return h;
28 }
29 int main()
30 {
31 int t;
32 cin>>t;
33 while(t--)
34 {
35 memset(A,0,sizeof(A));
36 memset(B,0,sizeof(B));
37 int n,m;
38 cin>>n>>m;
39 for(int i=0;i<n;i++)
40 cin>>A[i];
41 for(int i=0;i<m;i++)
42 cin>>B[i];
43 qsort(A,n,sizeof(A[0]),cmp);
44 qsort(B,m,sizeof(B[0]),cmp);
45 int ans=0;
46 for(int i=0;i<n;i++)
47 {
48
49 int tem=bnr(0,m,A[i]);
50 // cout<<tem<<endl;
51 ans+=tem;
52 }
53 cout<<ans<<endl;
54 }
55
56 }
相关文章推荐
- 1587. Eat or Be Eaten
- warning C4996: 'gets': This function or variable may be unsafe. Consider using gets_s instead.
- HDU 3031 To Be Or Not To Be
- 7.Error提示: main cannot be resolved or is not a field
- 打开Eclipse时:Workspace in use or cannot be created, choose a different one.–错误解决办法
- VS2015中”This function or variable may be unsafe.”警告的解决办法
- myeclipse打开时出现"Workspace in use or cannot be created, choose a different one."怎么解决
- Android Error:main cannot be resolved or is not a field 问题解决方法
- [转]Visual Studio 2012 编译错误【error C4996: 'scanf': This function or variable may be unsafe. 】的解决方案
- TO BE OR NOT TO BE
- one or morebreakpoints cannot be set and have been disabled解决方案
- C4996 'fopen': This function or variable may be unsafe.
- SVMcgForClass函数报错分析 错误使用 svmtrain (line 233) Y must be a vector or a character array. 出错 SVMcgForCla
- 在线安装maven插件问题:Cannot complete the install because one or more required items could not be found.
- Flume启动时报错Caused by: java.lang.InterruptedException: Timed out before HDFS call was made. Your hdfs.callTimeout might be set too low or HDFS calls are taking too long.解决办法(图文详解)
- AssertionError: HybridBlock requires the first argument to forward be either Symbol or NDArray, but
- 在win10下,启动Eclipse,出现A Java Runtime Environment(JRE) or Java Development Kit(JDK) Must be available i
- Property with 'retain (or strong)' attribute must be of object type
- “warning C4996: 'fopen': This function or variable may be unsafe”和“LINK : fatal error LNK1104”的解决办法
- java.sql.SQLException: QueryRunner requires a DataSource to be invoked in this way, or a Connection