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

【今日三题】游游的重组偶数(模拟) / 体操队形(回溯) / 二叉树中的最大路径和(树形dp)

头像
⭐️个人主页:@小羊
⭐️所属专栏:每日两三题
很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~

动图描述

目录

    • 游游的重组偶数(模拟)
    • 体操队形(回溯)
    • 二叉树中的最大路径和(树形dp)


游游的重组偶数(模拟)

  • 游游的重组偶数

在这里插入图片描述

如果需要操作整数的位,可以将这个整数作为字符串读入,方便操作。
首先判断读入整数是否本来就是偶数,如果不是再从头遍历找有没有哪一位是偶数,如果存在则和最后一位交换,然后返回。

#include <iostream>
#include <string>
using namespace std;int func(string s)
{int n = s.size();if ((s[n - 1] - '0') % 2 == 0) return stoi(s);for (int i = 0; i < n; i++){if ((s[i] - '0') % 2 == 0){swap(s[i], s[n - 1]);return stoi(s);}}return -1;
}int main()
{int q;cin >> q;while (q--){string x;cin >> x;cout << func(x) << endl;}return 0;
}

体操队形(回溯)

  • 体操队形

在这里插入图片描述

枚举每个位置的情况,画出决策树,一切都好办。

#include <iostream>
using namespace std;int n, arr[11], res;
bool used[11];void dfs(int pos)
{if (pos == n + 1){res++;return;}for (int i = 1; i <= n; i++){if (used[i]) continue;if (used[arr[i]]) return; // 剪枝used[i] = true;dfs(pos + 1);used[i] = false;}
}int main()
{cin >> n;for (int i = 1; i <= n; i++) cin >> arr[i];dfs(1);cout << res << endl;return 0;
}

二叉树中的最大路径和(树形dp)

  • 二叉树中的最大路径和

在这里插入图片描述

最大路径和 = 当前节点值 + 左子树最大单链和 + 右子树最大单链和。

class Solution {
public:int res = -0x3f3f3f3f;int maxPathSum(TreeNode* root) {dfs(root);return res;}int dfs(TreeNode *root){if (root == nullptr) return 0;int l = max(0, dfs(root->left));  // 左子树最大单链和int r = max(0, dfs(root->right)); // 右子树最大单链和res = max(res, root->val + l + r); // 当前节点最大路径和return root->val + max(l, r); // 返回当前最大单链和}
};

本篇文章的分享就到这里了,如果您觉得在本文有所收获,还请留下您的三连支持哦~

头像
http://www.xdnf.cn/news/271135.html

相关文章:

  • 注入内部Bean
  • C与指针5——字符串合集
  • 高频数据冲击数据库的技术解析与应对方案
  • 基于构件的软件开发方法及其应用
  • Linux系统如何完成系统周期化任务
  • 什么是 Redis?
  • 定长滑动窗口(基础)
  • 【Mytais系列】核心工作流程
  • C++类_移动构造函数
  • <init-param>和<load-on-startup>的作用
  • 重新构想E-E-A-T:提升销售与搜索可见性的SEO策略
  • 如何优化MySQL主从复制的性能?
  • 【电路笔记】-自耦变压器
  • c++ 函数参数传递
  • 推理能力:五一模型大放送
  • 硬件零基础入门(尚硅谷)
  • JavaScript中的AES加密与解密:原理、代码与实战
  • Day04 新增套餐
  • 双指针算法详解(含力扣和蓝桥杯例题)
  • 王道考研数据结构课后题代码题(2026版)——排序部分
  • 第5章 Python 基本数据类型详解(int, float, bool, str)
  • 融智学16字方针无歧义表述并构建人机协同的非零和博弈模型
  • systemd-notify(linux服务状态通知消息)
  • 视频编解码学习一之相关学科
  • Java框架“若依RuoYi”前后端分离部署
  • 2025年最新嵌入式开发STM32单片机详细教程(更新中)
  • GTS-400 系列运动控制器板(十四)----软限位使用
  • 多元随机变量协方差矩阵
  • 62常用控件_QDial的使用
  • Learning vtkjs之PolyDataNormals