PTA L2-047 锦标赛

ops/2025/2/22 16:13:25/

题目

在这里插入图片描述

解析

把每一场比赛看作满二叉树的一个节点,父节点递归遍历子节点的结果,进行试填。

代码

#include <bits/stdc++.h>using i64 = long long;struct Node {int win, lose;
};void solve() {int k;std::cin >> k;int siz = (1 << k);std::vector<Node> tree(siz);for (int r = k; r > 0; r--) {int n = 1 << (r - 1);int s = n;while (n--) {std::cin >> tree[s++].lose;}}std::cin >> tree[1].win;if (tree[1].win < tree[1].lose) {std::cout << "No Solution\n";} else {std::function<bool(int, int)> dfs = [&] (int u, int siz) -> bool {if (u * 2 >= siz) {return true;}int l = u * 2, r = u * 2 + 1;int faw = tree[u].win, fal = tree[u].lose;if (faw > tree[l].lose && fal > tree[r].lose) {tree[l].win = faw;tree[r].win = fal;if (dfs(l, siz) && dfs(r, siz)) {return true;}tree[l].win = tree[r].win = 0;}if (faw > tree[r].lose && fal > tree[l].lose) {tree[r].win = faw;tree[l].win = fal;if (dfs(l, siz) && dfs(r, siz)) {return true;}}return false;};if (dfs(1, siz)) {for (int i = (1 << (k - 1)); i < siz; i++) {std::cout << tree[i].win << " " << tree[i].lose;if (i != siz - 1) std::cout << " ";}} else {std::cout << "No Solution\n";}}}int main() {std::ios_base::sync_with_stdio(false);std::cin.tie(nullptr); int t = 1;// std::cin >> t;for (int i = 1; i <= t; i++) {// std::cout << "Case " << i << ": ";solve();}return 0;
}

http://www.ppmy.cn/ops/3924.html

相关文章

面试:lock 和 synchronized

一、语法层面 synchronized 是关键字&#xff0c;源码在jvm中&#xff0c;用c语言实现Lock 是接口&#xff0c;源码由jdk提供&#xff0c;用java语言实现使用synchronized时&#xff0c;退出同步代码块锁会自动释放&#xff0c;而使用Lock时&#xff0c;需要手动调用unlock方法…

BOOT和UBOOT区别与联系

一、定义 1.1 Boot&#xff08;启动&#xff09; 在计算机和嵌入式系统的基本概念中&#xff0c;“boot”是指启动过程&#xff0c;这是一个系统从加电开始直至进入操作系统运行状态的过程。在嵌入式系统中&#xff0c;这个过程通常包括初始化硬件、加载并执行引导加载…

虚拟机下如何使用Docker(完整版)

Docker详细介绍&#xff1a; Docker 是一款开源的应用容器引擎&#xff0c;由Docker公司最初开发并在2013年发布。Docker的核心理念源自于操作系统级别的虚拟化技术&#xff0c;尤其是Linux上的容器技术&#xff08;如LXC&#xff09;&#xff0c;它为开发人员和系统管理员提供…

docker部署SpringCloud微服务项目

我们写好的项目&#xff0c;都需要部署上线&#xff0c;今天就给大家介绍一下&#xff0c;如何将微服务项目部署上线&#xff0c;一般我们部署项目都是先在本地docker部署一遍&#xff0c;如果没有问题再部署到服务器&#xff0c;那么今天我就按照这个顺序来说 前置条件 微服…

【C++】List容器(1)-STL标准库-List举例说明-定义和初始化-成员函数的使用-运行效率对比-链接数据结构-和顺序表的对比

C学习&#xff1a;list容器详解&#xff08;一&#xff09; 1.STL标准库 C Standard Template Library&#xff08;STL&#xff09;是C编程语言的一个库&#xff0c;它提供了一系列模板化的数据结构&#xff08;比如向量、列表、队列等&#xff09;和算法&#xff08;比如排序…

超越GPT-4V,苹果多模态大模型上新,神经形态计算加速MLLM(一)

4月8日&#xff0c;苹果发布了其最新的多模态大语言模型&#xff08;MLLM &#xff09;——Ferret-UI&#xff0c;能够更有效地理解和与屏幕信息进行交互&#xff0c;在所有基本UI任务上都超过了GPT-4V&#xff01; 苹果开发的多模态模型Ferret-UI增强了对屏幕的理解和交互&am…

游戏前摇后摇Q闪E闪QE闪QA等操作

备注&#xff1a;未经博主允许禁止转载 个人笔记&#xff08;整理不易&#xff0c;有帮助&#xff0c;收藏点赞评论&#xff0c;爱你们&#xff01;&#xff01;&#xff01;你的支持是我写作的动力&#xff09; 笔记目录&#xff1a;学习笔记目录_pytest和unittest、airtest_w…

WebStorm 2024.1.1 JavaScript集成开发环境 mac/win

JetBrains WebStorm是Jetrains拥有的一款JavaScript前端开发工具。被中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaSscript IDE”。与Int elliJ IDEA同源&#xff0c;继承了Int elliJ IDEA强大的JS功能。 主要功能包括智能代码补全、代码格式…