你被骗了
什么玩意,喵,有点看不懂这个代码,求这个代码的解析或题目的解析喵。
#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、假设 p 是任意正整数,sum一定是 2p()
23、当序列数全部相同时,mid 和 max 位置不等,sum 将取得最大值()
24、程序的最坏复杂度是( )
A.log(n)
B.n×log(n)
C.n×n
D.log(n)×log(n)
25、如果序列以2 1 进行交替任意 2p 次 2 1 2 1.......2 1,那么该程序的 sum 结果是 ( ) ,( p 是任意正整数 )
A.1 B.log(n) C.n/2 D.不能确定