zcmu--1679&&1680: 查找(二分&&printf)

1679: 查找2

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 392  Solved: 138
[Submit][Status][Web Board]

Description

给你一个长度是n的序列A,然后,有m次询问,每次询问是一个数字X,请你告诉我X在序列A中有多少个数是不大于它的

Input

第一行 ,n,m,(n,m<=100000)

第二行n个数(每个数<=1000)

第三行m个数

Output

输出答案

Sample Input

5 4

2 5 4 3 5

2 5 8 9

Sample Output

1 5 5 5

【分析】难过。。用了二分还总是时间超限,一直超限,最后把cin改成printf——A了!!!  心态崩了

【代码】

#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn=1e5+5;
int a[maxn];
int ff(int st,int ed, int x)
{
    int mid;
    while(stx)ed=mid;
        else st=mid+1;
    }
    return st;
}
int main()
{
    int n,m;
    while(~scanf("%d%d",&n,&m))
    {
        for(int i=0;i

1680: 查找1

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 472  Solved: 170
[Submit][Status][Web Board]

Description

给你一个长度是n的序列A,然后,有m次询问,每次询问是一个数字X,请你告诉我X在序列A中是否存在,存在输出YES,否则输出NO

Input

第一行 ,n,m,(n,m<=100000)

第二行n个数(每个数<=1000)

第三行m个数

Output

输出答案

Sample Input

5 4

2 5 4 3 5

2 5 8 9

Sample Output

YES

YES

NO

NO

【分析】跟上一题一样

【代码】

#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn=1e5+5;
int a[maxn];
int ff(int st,int ed, int x)
{
    int mid;
    while(stx)ed=mid;
        else if(a[mid]

 

你可能感兴趣的:(ZCMU-OJ,二分,ACM刷题册)