虽然是简单题,就是log2的运用,然后对于同层的数据累加取最大值
#include<bits/stdc++.h>using namespace std;const int N=100010;
int a[N];int main(){int n;cin>>n;int MAX=-1;for( int i=1;i<=n;i++){int j;cin>>j;// cout<<(int)log2(i)+1<<endl;a[(int)log2(i)+1]+=j;}int flag=0;for(int i=1;i<=log2(n)+1;i++){// cout<<a[i]<<endl;if(MAX<=a[i]){MAX=max(a[i],MAX);flag=i;}}cout<<flag<<endl;return 0;}
double n=3.12;if (typeid((int)floor(n)) == typeid(int)) {cout<<(int)floor(n)<<endl;cout<<"yes"<<endl;}return 0;
floor向下取整后的数仍然是原来的类型,所以floor输出记得强转。