喵
  • 板块灌水区
  • 楼主lucy2012
  • 当前回复20
  • 已保存回复20
  • 发布时间2024/8/7 13:15
  • 上次更新2024/8/7 14:35:44
查看原帖
喵
1252442
lucy2012楼主2024/8/7 13:15

你被骗了

什么玩意,喵,有点看不懂这个代码,求这个代码的解析或题目的解析喵。

#include<iostream>
using namespace std;
const int N=100005;
int n,m,a[N];
int f(int l,int r) {
	if(r<l) return 0;
	int mid=(l+r)/2;
	int max=0;
	for(int i=l; i<=r; i++) {
		if(a[i]>max) {
			max=a[i];
		}
	}
	if(max==a[mid]) return 1;
	else return f(l,mid-1)+f(mid+1,r);
}
int main() {
	cin>>n>>m;
	for(int i=1; i<=n; i++) {
		cin>>a[i];
	}
	int sum=f(1,n);
	cout<<sum<<endl;
	if(sum>=m) cout<<"yes";
	else cout<<"no";
	return 0;
} 

21、如果输入时序列为升序,那么最后sum一定是 int(log(n)) 。 ( )

22、假设 pp 是任意正整数,sum一定是 2p2^p()

23、当序列数全部相同时,midmid 和 maxmax 位置不等,sumsum 将取得最大值()

24、程序的最坏复杂度是( )

A.log(n)log(n)
B.n×log(n)n \times log(n)
C.n×nn \times n
D.log(n)×log(n)log(n) \times log(n)

25、如果序列以2 1 进行交替任意 2p2^p 次 2 1 2 1.......2 1,那么该程序的 sumsum 结果是 ( ) ,( pp 是任意正整数 )

A.11 B.log(n)log(n) C.n/2n/2 D.不能确定

2024/8/7 13:15
加载中...