这题哪错了?

  1. 二分查找-变形3
    题目ID:9843必做题100分
    最新提交:
    Time Limit Exceeded
    20 分
    历史最高:
    Time Limit Exceeded
    20 分
    时间限制: 1000ms
    空间限制: 65536kB
    题目描述
    输入
    N
    (
    N
    <
    =
    1
    0
    6
    )
    N(N<=10
    6
    ) 个从小到大的有序数,用二分查找给定数
    M
    M 的个数,输出对应的个数,若无此数输出
    0
    0;

输入格式
第一行一个整数
n
n,第二行
n
n 个整数
a
i
a
i

表示要查找的有序数列,第三行若干个整数
m
i
m
i

表示要查找的数字(最多有
S
S 个)。

输出格式
对于每一个
m
i
m
i

,输出其个数,若无此数输出 0;,用空格间隔,如果不存在,则输出 0。

样例
Input 1
5
1 2 2 2 5
2
Output 1
3
数据范围
0
<
n

1
0
6
0<n≤10
6

0

a
i

1
0
9
0≤a
i

≤10
9

0

m
i

1
0
9
0≤m
i

≤10
9

0
<
S

10000
0<S≤10000。

1 个赞
#include<bits/stdc++.h>
using namespace std;
int main(){
  long long n,x,sum=0;
    cin>>n;
   int a[n]={};
  for(int i=0;i<n;i++){
    cin>>a[i];//输入
  }
while(cin>>x){
    //x
    for(int j=0;j<n;j++){//a[j]
      if(a[j]==x)sum=sum+1;
    }
    cout<<sum<<" ";//输出个数
    sum=0;//重置sum
  
}
    return 0;
}
1 个赞

放问题讨论区

1 个赞

没权利

1 个赞

那把题目格式化

1 个赞

@严嘉乐
问题讨论区有小分区啊,可以发的,下次再在常规发删帖

2 个赞

行,就说哪错了

1 个赞

你二分呢?

1 个赞

没用。

1 个赞

不会用

1 个赞
	while(cin>>m){
		//初始化
		while (L<R){
			int mid=(L+R)/2;
			if(a[mid]>=m)R=mid;
			else L=mid+1;
		}
		sum1=L;
		//初始化
		while (L<R){
			int mid=(L+R+1)/2;
			if(a[mid]<=m)L=mid;
			else R=mid-1;
		}
		//输出
	}

用这样的

1 个赞

不然会超时什么的

1 个赞

行。。

1 个赞

A了么?

1 个赞

没。。

2 个赞

我也不会做这题(笑)

2 个赞

一样(乐)

2 个赞

像谁会做一样 :sweat_smile:

2 个赞

老师要讲

1 个赞

器材。
。。。

前几题用二分做 改一下不就行了

就是不用 :sweat: :sweat: :sweat: