当前位置: 首页 > news >正文

MC0244多重堡垒

码蹄集OJ-多重堡垒

一、问题概述

(一)问题背景

小码哥沉迷游戏 “多重堡垒”,该游戏可抽象为满二叉树结构(满二叉树是指除最后一层外,每层节点数达最大值,且最后一层节点集中在左侧 ),需计算其复杂程度,以此考查对满二叉树特性、节点复杂程度计算规则及算法实现的理解。

(二)问题目标

给定满二叉树的节点个数 n 和按层序遍历(每层从左到右遍历,一层结束遍历下一层 )的节点权值序列 v,计算该游戏的复杂程度,即所有节点复杂程度之和。每个节点的复杂程度为:以该节点为根的子树中,所有节点(含根节点 )的权值乘以到根节点的边数(节点到自身边数为 0 )的结果中的最大值。

五、示例验证

(一)样例输入输出

样例输入:

3
6 2 7

样例输出:

7

代码:

#include <bits/stdc++.h>
using namespace std;
const int N = 1e4 + 7;
int n, a[N], ans;int getMax(int index, int edge) {if (index > n)return 0;int rootValue = edge * a[index]; int leftValue = getMax(index * 2, edge + 1);int rightValue = getMax(index * 2 + 1, edge + 1);return max(max(rightValue, leftValue), rootValue);
}int main() {cin >> n;for (int i = 1; i <= n; i++)cin >> a[i];for (int i = 1; i <= n; i++)ans += max(getMax(i * 2, 1), getMax(i * 2 + 1, 1));cout << ans;return 0;
}
#include <bits/stdc++.h>
using namespace std;
const int N = 1e4 + 7;
int n, a[N], ans;int getMax(int index, int edge) 
{if (index > n)return 0;int rootValue = edge * a[index]; int leftValue = getMax(index * 2, edge + 1);int rightValue = getMax(index * 2 + 1, edge + 1);return max(max(rightValue, leftValue), rootValue);
}int main() {cin >> n;for (int i = 1; i <= n; i++)cin >> a[i];for (int i = 1; i <= n; i++)//计算简化处理 ans += max(getMax(i * 2, 1), getMax(i * 2 + 1, 1));cout << ans;return 0;
}
#include <bits/stdc++.h>
using namespace std;
const int N = 1e4 + 7;
int n, a[N], ans;
int getMax(int index,int edge) 
{if (index > n)return 0;int rootValue = edge * a[index]; int leftValue = getMax(index * 2, edge + 1);int rightValue = getMax(index * 2 + 1, edge + 1);return max(max(rightValue, leftValue), rootValue);
}int main() {cin >> n;for (int i = 1; i <= n; i++)cin >> a[i];for (int i = 1; i <= n; i++)ans += getMax(i,0);cout << ans;return 0;
}

http://www.dtcms.com/a/305280.html

相关文章:

  • kotlin使用mybatis plus lambdaQuery报错
  • Java中什么是类加载?类加载的过程?
  • TGD第八篇:二维应用——图像边缘检测
  • FastAPI入门:Cookie参数、Header参数、Cookie参数模型、Header参数模型
  • 移动端 WebView 调试实战,多平台行为差异排查与统一调试流程
  • Gartner发布CTEM指南:使用持续威胁暴露管理来减少网络攻击
  • 应急前端“黄金3分钟”设计:极端场景下的操作界面极速搭建技术
  • COPRAS(Complex Proportional Assessment)简介与简单示例
  • 汇总10个高质量免费AI生成论文网站,支持GPT4.0和DeepSeek-R1
  • [学习记录]URP流程解析(2)--初始化阶段
  • 最新优茗导航系统源码/全开源版本/精美UI/带后台/附教程
  • Effective_C++09: 绝不在构造和析构过程中调用virtual函数
  • 【解决办法】pip install albumentations安装下载遇19kB/s超级慢细水管
  • 无代码测试平台ATECLOUD全场景测试方案
  • Java中Boolean.getBoolean方法误用与修复
  • 【监控】非IP监控系统改造IP监控系统
  • 中科米堆CASAIM空调扇叶自动蓝光三维测量解决方案
  • <RT1176系列12>DMAMUX入门级应用和DMAMUX MAP表
  • Linux定时器和时间管理源码相关总结
  • 【Unity编辑器扩展】Unity场景选择工具 - ScenesChooseTool 使用指南
  • 项目历程—生命数组游戏(两版本)
  • 智源研究院发布数据魔方,以智能化自定义方式重构模型训练数据供给范式
  • 两数之和(每天刷力扣hot100系列)
  • JDK17 新特性跟学梳理
  • Java注解全面解析与应用实战
  • Redis 跨主机连接超时分析:从网络波动到架构优化
  • 关于算法的一些思考
  • 基于springboot的零食商城的设计与实现/零食销售系统的设计与实现
  • 基于Matlab图像处理的静态雨滴去除与质量评估系统
  • JAVA第五学:方法的使用 调试讲解