Educational Codeforces Round 2 B. Queries about less or equal elements (二分)
2016-01-01 17:04
399 查看
B. Queries about less or equal elements
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given two arrays of integers a and b.
For each element of the second array bj you
should find the number of elements in arraya that are less than or equal to the value bj.
Input
The first line contains two integers n, m (1 ≤ n, m ≤ 2·105)
— the sizes of arrays a and b.
The second line contains n integers
— the elements of array a ( - 109 ≤ ai ≤ 109).
The third line contains m integers
— the elements of array b ( - 109 ≤ bj ≤ 109).
Output
Print m integers,
separated by spaces: the j-th of which is equal to the number of such elements in array a that
are less than or equal to the value bj.
Sample test(s)
input
output
input
output
题意:给你一个序列A,然后一个序列B,求在序列A中小于Bi的数的个数
思路:将A序列排序,然后二分查找
总结:刚开始二分写挫了,WA了一发。。。
ac代码:
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stack>
#include<queue>
#include<vector>
#include<iostream>
#include<algorithm>
#define MAXN 1000010
#define LL long long
#define ll __int64
#define INF 0xfffffff
#define mem(x) memset(x,0,sizeof(x))
#define PI acos(-1)
using namespace std;
ll a[MAXN];
int main()
{
int n,m;
int i;
ll b;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=1;i<=n;i++)
scanf("%I64d",&a[i]);
sort(a+1,a+n+1);
while(m--)
{
scanf("%I64d",&b);
int high=n,low=1;
int k=0;
int bz=0;
while(low<=high)
{
int mid=(low+high)/2;
if(a[mid]<=b)
low=mid+1;
//else if(a[mid]>b)
else
high=mid-1;
}
printf(m?"%d ":"%d\n",low-1);
}
}
return 0;
}
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given two arrays of integers a and b.
For each element of the second array bj you
should find the number of elements in arraya that are less than or equal to the value bj.
Input
The first line contains two integers n, m (1 ≤ n, m ≤ 2·105)
— the sizes of arrays a and b.
The second line contains n integers
— the elements of array a ( - 109 ≤ ai ≤ 109).
The third line contains m integers
— the elements of array b ( - 109 ≤ bj ≤ 109).
Output
Print m integers,
separated by spaces: the j-th of which is equal to the number of such elements in array a that
are less than or equal to the value bj.
Sample test(s)
input
5 4 1 3 5 7 9 6 4 2 8
output
3 2 1 4
input
5 5 1 2 1 2 5 3 1 4 1 5
output
4 2 4 2 5
题意:给你一个序列A,然后一个序列B,求在序列A中小于Bi的数的个数
思路:将A序列排序,然后二分查找
总结:刚开始二分写挫了,WA了一发。。。
ac代码:
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stack>
#include<queue>
#include<vector>
#include<iostream>
#include<algorithm>
#define MAXN 1000010
#define LL long long
#define ll __int64
#define INF 0xfffffff
#define mem(x) memset(x,0,sizeof(x))
#define PI acos(-1)
using namespace std;
ll a[MAXN];
int main()
{
int n,m;
int i;
ll b;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=1;i<=n;i++)
scanf("%I64d",&a[i]);
sort(a+1,a+n+1);
while(m--)
{
scanf("%I64d",&b);
int high=n,low=1;
int k=0;
int bz=0;
while(low<=high)
{
int mid=(low+high)/2;
if(a[mid]<=b)
low=mid+1;
//else if(a[mid]>b)
else
high=mid-1;
}
printf(m?"%d ":"%d\n",low-1);
}
}
return 0;
}
相关文章推荐
- include(_once)与require(_once)
- JAVA图形界面(GUI)之布局管理器
- String | StringBuffer | StringBuilder 比较
- LeetCode96 Unique Binary Search Trees
- 形参个数可变, NSNumber和NSValue,获得Class
- <LeetCode OJ>Implement Stack using Queues【225】
- UIButton
- The requested URL /Users/add was not found on this server.
- android UI 优化之<viewstub>实现View的延迟加载
- Button 点击事件(参数)
- **Repeated DNA Sequences
- UIBarbutton点击事件问题
- Deep learning From Image to Sequence
- UILabel用法
- 【PAT】1007 Maximum Subsequence Sum (25) 最大连续子序列和 +记录位置
- emcee——Quickstart
- 项目管理神器——Confluence篇
- android UI 优化之<include>标签
- 关于UIView的autoresizingMask属性的研究
- 快速排序算法(Quicksort)