【4.15日题解】——淘汰赛

简介: 【4.15日题解】——淘汰赛

☘前言☘

今日份水题开始。希望有想要提高的同学跟我们一起来刷题0.0

4.15日每日一题——淘汰赛


🧑🏻作者简介:一个从工业设计改行学嵌入式的年轻人

✨联系方式:2201891280(QQ)

⏳全文大约阅读时间: 20min


全文目录

☘前言☘

解题思路

📑写在最后

P4715 【深基16.例1】淘汰赛


解题思路

有个神奇的东西叫做败者树,第一次了解到这个算法是在计算机组成原理中的多路归并排序到时候,这个地方刚好就类似拿来用用,挺好用的。


#include <cstdio>
#include <cmath>
int num[128];   //记录数据
int Btree[256];//记录败者树
int main(){
    int n;
    scanf("%d",&n);
    int base = pow(2,n);
    for(int i = 0;i < base;++i)  Btree[i + base] = i;
    for(int i = 0;i < base;++i)  scanf("%d",num + i);
    while(--n){
        int basetmp = pow(2,n);
        for(int i = 0;i < basetmp;++i)
            if(num[Btree[base + 2 * i]] < num[Btree[base + 2 * i + 1]])   Btree[i + basetmp] = Btree[base + 2 * i + 1];
            else Btree[i + basetmp] = Btree[base + 2 * i];
        base = basetmp;
    }    
    printf("%d", (num[Btree[2]] < num[Btree[3]] ? Btree[2]  : Btree[3]) + 1);
    return 0;
}

相关文章
|
缓存 前端开发 JavaScript
微前端模块共享你真的懂了吗(下)
前言:我们运用微前端架构解决了应用体积庞大的问题,通过实践微前端的理念,将前端应用拆分为多个微应用(可独立部署、松散耦合的应用)。同时微应用的存在,使得我们无需在构建一个庞大的应用,而是按需构建,极大了加快了构建效率。但只是解决了应用层面的问题,在中后台应用场景中,不同微应用和基座之间可能存在通用的模块依赖,那么如果应用间可以实现模块共享,那么可以大大优化单应体积大小
856 1
微前端模块共享你真的懂了吗(下)
|
程序员 编译器 C++
c++重载运算符和重载函数
c++重载运算符和重载函数
88 1
|
Java
Netty中粘包拆包问题解决探讨
Netty中粘包拆包问题解决探讨
108 0
TU^
|
存储 C语言
C语言之操作符
C语言之操作符
TU^
61 0
uni-app 157发布朋友圈-批量上传图片
uni-app 157发布朋友圈-批量上传图片
135 0
|
前端开发
前端学习笔记202304学习笔记第六天-对象语法绑定css样式
前端学习笔记202304学习笔记第六天-对象语法绑定css样式
164 0
|
消息中间件 网络架构
5、RabbitMQ教程-推送到消费都经历了什么
5、RabbitMQ教程-推送到消费都经历了什么
187 0
5、RabbitMQ教程-推送到消费都经历了什么
|
XML 缓存 前端开发
Spring+SpringMvc+MyBatis开发入门教程
背景 本系列文字的出发点是写一个比较条理,比较全面的Spring系列教程,首先造福自己、理顺自己的知识体系,然后也造福大众,因为网上现存的资源实在是陈旧而混乱,不应该啊不应该。 本系列文章其实涵盖了Spring+SpringMVC+MyBatis(SSM)的知识体系,相较于Spring来说,SpringMVC本身就是Spring一部分,MyBatis主要使用场景也是融合在Spring中。
262 0
|
JSON 数据格式 API
JSONPlaceholder
title: 测试date: 2019-02-18 09:20:45 tags: 不知道 一个用于快速搭建RESTful API的接口 JSONPlaceholder 地址 Json-Server ,个人搭建一个 访问GITHub 你可以创建一个文件夹,执行`npm install -g js...
1879 0
|
JavaScript 前端开发 开发者