第十届蓝桥杯省赛C++B组 完全二叉树的权值

这个题我写的时候开始用的log和pow函数,但是,直接报错了,我用的VS2010,我开始以为我写错了,但是我复制了几个大神的代码,发现也是报错,所以我就用层数来遍历;

 #include "stdafx.h"
    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<cmath>
    #include<iostream>
    #include<algorithm>
    #include<string>
    #include<vector>
    #include<queue>
    #include<map>
    #include<set>
    using namespace std;
     
    #define INF -0x3f3f3f3f
    int main()
    {
    	int n;
    	cin>>n;
    	int max=INF;//最大和
    	int max_dep;//最大和深度
    	for(int i=0,length=1,depth=1;i<n;depth++,length*=2)
    	{
    		int sum=0;//每一层的和;
    		for(int j=0;j<length&&i<n;j++,i++)
    		{
    			int x;
    			cin>>x;
    			sum+=x;//每输入一个权值,直接加入和中;
    		}
    		if(sum>max)//大于才改变
    			{
    				max=sum;
    				max_dep=depth;
    			}
    	}
    	cout<<max_dep<<endl;
    	return 0;
    
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值