【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;
}

相关文章
|
5月前
leetcode3题解
leetcode3的题解
22 1
|
5月前
|
算法
leetcode4题解
leetcode4题解
26 0
Leetcode contests 93 题解
870. Advantage Shuffle 起始就是hdoj 1502田忌赛马,但要求的结果不一样而已。这里我用了个pair来记录B中每个数字对应的位置。
44 0
|
数据安全/隐私保护
[FlareOn5]FLEGGO 题解
[FlareOn5]FLEGGO 题解
54 1
|
数据安全/隐私保护
[UTCTF2020]babymips 题解
[UTCTF2020]babymips 题解
71 1
|
数据安全/隐私保护
CrackRTF 题解
CrackRTF 题解
59 0
|
数据安全/隐私保护
[FlareOn6]Overlong 题解
[FlareOn6]Overlong 题解
91 0