构造+简单树状

昨日的牛客周赛算是比较简单的,其中最后一道构造题目属实眼前一亮。

倒数第二个题目也是一个很好的模拟题目(考验对二叉树的理解和代码的细节)

给定每一层的节点个数,自己拟定一个父亲节点,构造一个满足条件的二叉树。

其实最简单的构造就是1为父亲节点,随后慢慢的往后将节点堆上去。

#include <bits/stdc++.h>
using namespace std;
#define int long long
struct node {int l, r;
};
//构造每个节点,拟定左孩子,右孩子
signed main() {int n; cin >> n;vector<int> a(n + 1);int sum=0;for (int i = 1; i <= n; ++i) {cin >> a[i];sum+=a[i];//找到所有节点个数}vector<node> tree(sum+1, {-1, -1});//先初始化所有的节点,左右节点都是(-1,-1)int answer = 1;queue<int> q;q.push(answer++);//用队列来模拟上一层的节点for (int i = 2; i <= n; i++) {int j = a[i];//j是当前节点的个数int cnt = a[i - 1];for (int oi = 1; oi <= cnt; ++oi) {if (q.empty()) break;//特判,队列为空int nima = q.front();q.pop();//队列最前面的先popfor(int k=1;k<=2;k++){//左右塞孩子if (answer <= sum && j > 0){//answer就是节点if(k==1)tree[nima].l = answer;else tree[nima].r = answer;q.push(answer++);//塞完了以后就放到队列里面为下一层做准备j--;//当前节点自减}}}}cout<<1<<endl;for (int i = 1; i <= sum; ++i) {cout << tree[i].l << " " << tree[i].r << endl;}
}

第二个构造题目的核心思想就是认识到0的作用和,m,n在什么条件下有答案。

手动模拟之后发现,3,7,11,15(m+n)的条件下有答案,所以第一步我们直接进行特判

随后我们想如何往里面塞数字

当n=1的时候,直接从n+1开始一直往后塞数字到m+n

当n>=2的时候,我们前面(n-1)行(除了最后一个数字)都塞0

如 当输入是3 4的时候

我们可以进行如下构造
0 0 0 1
0 0 0 2
4 5 6 4

对最后一排进行特殊照顾 先塞4 5 6 7(最后在对7进行转换)7^1^2^...(n-1)

前面的就直接对最后一个数字从1开始赋值到n-1

总结:很好的一个构造思路想法,当作经验包.....

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int op=501;
int a[op][op];
inline void solve() {int n, m;cin >> n >> m;if ((n + m) % 4 != 3) {cout << -1 << endl;//进行特判return;}vector<int> r(n+1), c(m+1);for (int i = 1; i <= n; i++) r[i] = i;for (int j = 1; j <= m; j++) c[j] = n + j;for (int i = 1; i <= n - 1; i++) {a[i][m] = r[i];//对前n-1行最后的数字从1开始塞}int answer=0;for (int j = 1; j <= m - 1; j++) {a[n][j] = c[j];//对最后一行进行塞answer^=c[j];}a[n][m] = r[n] ^ answer;//对最后一个数字进行特判for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {cout << a[i][j] << " ";}cout << endl;}
}
signed main() {int t=1;while (t--)solve();return 0;
}
/***/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/80709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

apache2的默认html修改

使用127.0.0.1的时候&#xff0c;默认打开的是index.html&#xff0c;可以通过配置文件修改成我们想要的html vi /etc/apache2/mods-enabled/dir.conf <IfModule mod_dir.c>DirectoryIndex WS.html index.html index.cgi index.pl index.php index.xhtml index.htm <…

mysql性能提升方法大汇总

前言 最近在开发自己的小程序的时候&#xff0c;由于业务功能对系统性能的要求很高&#xff0c;系统性能损耗又主要在mysql上&#xff0c;而业务功能的数据表很多&#xff0c;单表数据量也很大&#xff0c;又涉及到很多场景的数据查询&#xff0c;所以我针对mysql调用做了优化…

多模态RAG与LlamaIndex——1.deepresearch调研

摘要 关键点&#xff1a; 多模态RAG技术通过结合文本、图像、表格和视频等多种数据类型&#xff0c;扩展了传统RAG&#xff08;检索增强生成&#xff09;的功能。LlamaIndex是一个开源框架&#xff0c;支持多模态RAG&#xff0c;提供处理文本和图像的模型、嵌入和索引功能。研…

LabVIEW中算法开发的系统化解决方案与优化

在 LabVIEW 开发环境中&#xff0c;算法实现是连接硬件数据采集与上层应用的核心环节。由于图形化编程范式与传统文本语言存在差异&#xff0c;LabVIEW 中的算法开发需要特别关注执行效率、代码可维护性以及与硬件资源的适配性。本文从算法架构设计、性能优化到工程实现&#x…

OpenCV中的光流估计方法详解

文章目录 一、引言二、核心算法原理1. 光流法基本概念2. 算法实现步骤 三、代码实现详解1. 初始化设置2. 特征点检测3. 光流计算与轨迹绘制 四、实际应用效果五、优化方向六、结语 一、引言 在计算机视觉领域&#xff0c;运动目标跟踪是一个重要的研究方向&#xff0c;广泛应用…

零基础入门MySQL:10分钟搞定数据库基本操作

&#x1f4da; 一、MySQL是什么&#xff1f; MySQL 是一个关系型数据库管理系统&#xff08;简单理解&#xff1a;用“表格”存储数据的仓库&#xff09;。 就像Excel表格一样&#xff0c;数据按行和列整齐存放&#xff0c;方便快速查找和管理&#xff01; 为什么要学MySQL&a…

LeetCode 3335.字符串转换后的长度 I:I先递推

【LetMeFly】3335.字符串转换后的长度 I&#xff1a;I先递推 力扣题目链接&#xff1a;https://leetcode.cn/problems/total-characters-in-string-after-transformations-i/ 给你一个字符串 s 和一个整数 t&#xff0c;表示要执行的 转换 次数。每次 转换 需要根据以下规则替…

Linux 系统如何挂载U盘

一、问题描述 Linux系统不像Windows系统有图形化界面&#xff0c;对于机房服务器安装的Linux尤其如此&#xff0c;那么有时候需要拷贝U盘或者光盘的文件到Linux系统中去&#xff0c;与 Windows 系统自动为 U 盘分配盘符不同&#xff0c;Linux 系统需要手动将 U 盘挂载到指定目…

Qt进阶开发:QTcpServer的详解

文章目录 一、QTcpServer 简介二、常用成员函数的使用三、信号函数的使用四、虚函数的使用五、连接多客户端-服务端示例一、QTcpServer 简介 QTcpServer 是 Qt 网络模块中的一个核心类,用于实现 基于 TCP 协议的服务端(Server),它负责监听端口、接收客户端连接请求,并通过…

大项目k8s集群有多大规模,多少节点,有多少pod

1. 实际参与过生产级 K8s 集群 回答示例&#xff1a; 目前我负责的 K8s 集群规模为 300 个物理节点&#xff0c;分布在 3 个可用区&#xff08;AZ&#xff09;&#xff0c;采用多控制平面高可用架构。集群日常运行约 12,000 个 Pod&#xff0c;资源利用率保持在 65%-75%&#…

是 OpenCV 的 CUDA 模块中用于在 GPU 上对图像或矩阵进行转置操作函数cv::cuda::transpose

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::cuda::transpose 是 OpenCV 的 CUDA 模块中的一个函数&#xff0c;用于在 GPU 上对图像或矩阵进行转置操作&#xff08;Transpose&#xff0…

使用 goaccess 分析 nginx 访问日志

介绍 goaccess 是一个在本地解析日志的工具, 可以直接在命令行终端环境中使用 TUI 界面查看分析结果, 也可以导出为更加丰富的 HTML 页面. 官网: https://goaccess.io/ 下载安装 常见的 Linux 包管理器中都包含了 goaccess, 直接安装就行. 以 Ubuntu 为例: sudo apt instal…

Google LLM prompt engineering(谷歌提示词工程指南)

文章目录 基本概念AI输出配置&#xff1a;调整AI的回答方式输出长度温度&#xff08;Temperature&#xff09;Top-K和Top-P 提示技术&#xff1a;让AI更好地理解你零样本提示&#xff08;Zero-shot&#xff09;少样本提示&#xff08;Few-shot&#xff09;系统提示&#xff08;…

简单介绍Qt的属性子系统

深入理解Qt的属性系统 ​ 笔者最近正在大规模的开发Qt的项目和工程&#xff0c;这里笔者需要指出的是&#xff0c;这个玩意在最常规的Qt开发中是相对比较少用的&#xff0c;笔者也只是在Qt的QPropertyAnimation需要动画感知笔者设置的一个属性的时候方才知道这个东西的。因此&…

NestJS 框架深度解析

框架功能分析 NestJS 是一个基于 Node.js 的渐进式框架&#xff0c;专为构建高效、可扩展的服务器端应用程序而设计。其核心理念结合了 面向对象编程&#xff08;OOP&#xff09;、函数式编程&#xff08;FP&#xff09; 和 函数式响应式编程&#xff08;FRP&#xff09;&…

PostgreSQL技术大讲堂 - 第89讲:重讲数据库完全恢复

PostgreSQL技术大讲堂 - 第89讲&#xff0c;主题&#xff1a;重讲数据库完全恢复 时间&#xff1a;2025年05月10日19:30 欢迎持续关注CUUG PostgreSQL技术大讲堂。

ubuntu部署supabase

安装supabse https://supabase.com/docs/guides/local-development/cli/getting-started?queryGroupsplatform&platformlinux brew install supabase/tap/supabase supabase init supabase start需要使用brewuser进行安装&#xff1a; brew安装参考链接&#xff1a; ht…

基于javaweb的SpringBoot酒店管理系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…

python 上海新闻爬虫, 东方网 + 澎湃新闻

1. 起因&#xff0c; 目的: 继续做新闻爬虫。我之前写过。此文先记录2个新闻来源。后面打算进行过滤&#xff0c;比如只选出某一个类型新闻。 2. 先看效果 过滤出某种类型的新闻&#xff0c;然后生成 html 页面&#xff0c;而且&#xff0c;自动打开这个页面。 比如科技犯罪…

使用bitNet架构

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、配置二、报错总结 前言 大型语言模型&#xff08;LLM&#xff09;面临的挑战&#xff1a;高能耗、高内存需求、部署门槛高。 微软提出 BitNet 架构&#x…