力扣 第 121 场双周赛 解题报告 | 珂学家 | 数位DP


前言

在这里插入图片描述


整体评价

T3, T4 都是典题


T1. 大于等于顺序前缀和的最小缺失整数

思路: 模拟

class Solution {
public:int missingInteger(vector<int>& nums) {set<int> s(nums.begin(), nums.end());int acc = nums[0];for (int i = 1; i < nums.size(); i++) {if (nums[i - 1] + 1 != nums[i]) break;acc += nums[i];}while (s.find(acc) != s.end()) {acc ++;}return acc;}
};

T2. 使数组异或和等于 K 的最少操作次数

思路: 思维题

KaTeX parse error: Got function '\prod' with no arguments as superscript at position 5: k ^ \̲p̲r̲o̲d̲_{i=0}^{i=n-1} … 的1个数

class Solution {
public:int minOperations(vector<int>& nums, int k) {int r = 0;for (int v: nums) r ^= v;r = r ^ k;int cnt = 0;while (r > 0) {r = r & (r - 1);cnt++;}return cnt;}
};

T3. 使 X 和 Y 相等的最少操作次数

思路: BFS

BFS的状态数10^6内

如果x,y值域扩大的话,那就很变难了,需要用dfs来求解

class Solution {
public:int minimumOperationsToMakeEqual(int x, int y) {if (x <= y) return y - x;int inf = 0x3f3f3f3f;vector<int> vec(x + 11 + 1, inf);vec[x] = 0;deque<int> deq;deq.push_back(x);while (!deq.empty()) {int c = deq.front();deq.pop_front();if (c - 1 >= 0 && vec[c - 1] > vec[c] + 1) {vec[c - 1] = vec[c] + 1;deq.push_back(c - 1);} if (c + 1 <= x + 11 && vec[c + 1] > vec[c] + 1) {vec[c + 1] = vec[c] + 1;deq.push_back(c + 1);}if (c % 5 == 0 && vec[c / 5] > vec[c] + 1) {vec[c / 5] = vec[c] + 1;deq.push_back(c / 5);}if (c % 11 == 0 && vec[c / 11] > vec[c] + 1) {vec[c / 11] = vec[c] + 1;deq.push_back(c / 11);}}return vec[y];}
};

T4. 统计强大整数的数目

思路: 数位DP

using int64 = long long;class Solution {
public:long long numberOfPowerfulInt(long long start, long long finish, int limit, string s) {return solve(finish, limit, s) - solve(start - 1, limit, s);}int64 solve(int64 v, int limit, string s) {vector<int> arr;for (int64 x = v; x > 0; x /= 10) arr.push_back((int)(x % 10));reverse(arr.begin(), arr.end());int n = arr.size(), m = s.length();if (n < s.length()) return 0;if (n == m) {int sv = atoi(s.c_str());return sv <= v ? 1LL : 0LL;}        vector<int64> dp(n, -1);function<int64(int, bool, bool)> dfs = [&](int idx, bool isNum, bool isLimit) {if (idx + m == n) {if (isLimit) {for (int i = idx; i < n; i++) {if (arr[i] < s[i - idx] - '0') return 0LL;else if (arr[i] > s[i - idx] - '0') return 1LL;}}return 1LL;}int64 res = 0;if (!isNum) {res += dfs(idx + 1, false, false);}if (isNum && !isLimit) {if (dp[idx] != -1) return dp[idx];}int s = isNum ? 0 : 1;int e = isLimit ? min(arr[idx], limit) : limit;for (int i = s; i <= e; i++) {res += dfs(idx + 1, true, isLimit && i == arr[idx]);}if (isNum && !isLimit) {dp[idx] = res;}return res;};int64 res = dfs(0, false, true);return res;}};

写在最后

在这里插入图片描述

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

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

相关文章

Win10专业版系统搭建DNS解析服务

Win10专业版 纯新手&#xff0c;也没弄过Linux的。不喜勿喷&#xff0c;有问题请指出 第一天一头雾水整了几个小时没结果&#xff0c;第二天豁然开朗&#xff0c;10分钟明白了第一天的问题所在。 Win10 安卓&#xff1a; iOS&#xff1a; 搭建DNS服务器的意义&#xff1a; 屏蔽…

React Hooks useContext 传参数

1、封装 context.js 文件&#xff0c;如下图&#xff1a; import { createContext } from "react";const Context createContext(null);export default Context;2、父级组件引入 context.js 文件&#xff0c;并用Provider包裹子组件&#xff0c;值通过 value 传递&…

运算放大器相关知识总结(1)

1、 前言 最近做了一个小项目&#xff0c;这个项目是研发一款阻抗测量仪。这个阻抗测量仪可以测量人体在不同频率下的生物电阻抗&#xff0c;该设备的核心是模拟电路&#xff0c;技术难点是减小模拟电路噪声。该项目前前忙了2个多月&#xff0c;借着研发这个项目的机会把自己掌…

fmt中几个技法

最简状态机实现 struct {state current_state state::start;FMT_CONSTEXPR void operator()(state s, bool valid true) {if (current_state > s || !valid)throw_format_error("invalid format specifier");current_state s;} } enter_state;2336: ente…

ivrobot乐高EV3 鲸鱼 能力风暴自制遥控手柄库文件和编程样例 使用指南

编程示例&#xff1a; 资源下载链接&#xff1a; https://download.csdn.net/download/abilix_tony/88739582 EV3 mindstorms能用基础版和高阶版&#xff08;条形编程界面&#xff09; EV3 classroom只能用基础版 &#xff08;scratch模块形状编程界面&#xff09; 请根据使…

WEB前端人机交互导论实验-实训2格式化文本、段落与列表

1.项目1 文本与段落标记的应用&#xff1a; A.题目要求: B.思路&#xff1a; &#xff08;1&#xff09;首先&#xff0c;HTML文档的基本结构是通过<html>...</html>标签包围的&#xff0c;包含了头部信息和页面主体内容。 &#xff08;2&#xff09;在头部信息…

【AI的未来 - AI Agent系列】【MetaGPT】2. 实现自己的第一个Agent

在MetaGPT中定义的一个agent运行示例如下&#xff1a; 一个agent在启动后他会观察自己能获取到的信息&#xff0c;加入自己的记忆中下一步进行思考&#xff0c;决定下一步的行动&#xff0c;也就是从Action1&#xff0c;Action2&#xff0c;Action3中选择执行的Action决定行动…

RPC:Remote Procedure Call 远程过程调用

目前&#xff0c;对于一个完整的应用来说&#xff0c;通常包含了若干支持不同功能的服务&#xff0c;亦或者是函数&#xff0c;这些服务之间往往可能需要互相调用&#xff0c;使用已经实现的服务功能&#xff0c;而不是需要在每个服务进程中再去重复实现已经有的功能。 这不仅…

ADSelfService Plus 推出离线多因素身份验证以提升远程工作安全性

采用先进验证方法&#xff0c;确保在任何时间、地点或连接问题下对业务数据的合法访问即使远程用户未连接到身份验证服务器或互联网&#xff0c;也可通过MFA安全认证。 MFA 得克萨斯州德尔瓦雷 — 2023年5月3日 — Zoho Corporation 旗下的企业IT管理部门ManageEngine今日宣布…

CentOS7单机部署Minio

1、下载二进制文件 # minio运行目录 cd /soft/minio # 下载minio二进制文件 wget https://dl.minio.org.cn/server/minio/release/linux-amd64/minio # 赋权 chmod x minio # 建立minio操作目录 mkdir /mnt/minio/data 2、建立启动脚本 cd /soft/minio vi start.sh 脚本内容…

抖音小店无货源爆单技巧大公开!教你如何与达人合作!

大家好&#xff0c;我是电商花花。 现在越来越多的人开始关注抖音小店电商&#xff0c;尝试着做抖音小店&#xff0c;我们做抖音小店除了要选品之外&#xff0c;我们还要学会找达人合作&#xff0c;让达人帮我们带货出单。 今天给大家讲一下如何找达人合作带货&#xff0c;如…

【AIGC】AnimateDiff:无需定制化微调的动画化个性化的文生图模型

前言 Animatediff是一个有效的框架将文本到图像模型扩展到动画生成器中&#xff0c;无需针对特定模型进行调整。只要在大型视频数据集中学习到运动先验知识。AnimateDiff就可以插入到个性化的文生图模型中&#xff0c;与Civitai和Huggingface的文生图模型兼容&#xff0c;也可…

6 功能开发

功能开发 6 功能开发1.发布1.1 小程序1.2 API1.3 规则 2.restful api回顾2.1 APIView &#xff08; 可以 &#xff09;2.2 ListAPIView2.2.1 用户传递某些值2.2.2 fields和exclude的区别&#xff1f;2.2.3 read_only2.3.4 复杂需求2.3.5 serializers嵌套 3. 首页展示扩展&#…

把项目转换为md知识库,提供给gpts使用

把项目转换为md知识库&#xff0c;提供给gpts使用 import osimport chardetproject_path # 项目目录路径 project_name # 项目名称# 定义全局字典&#xff0c;映射文件后缀名到Markdown代码块的语言 language_mapping {.java: java,.py: python,.js: javascript,.html: html,…

polar CTF CB链

一、题目 二、解答 1、通过jar包&#xff0c;可以看到/user路由下有反序列化操作 看到存在commons-beanutils依赖且版本为1.9.2&#xff0c;可利用CB链Getshell。 使用ysoserial项目中的CommonsBeanutils1链写一个POC&#xff0c;注意确保ysoserial项目中的pom.xml中的comm…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux网络编程第一天-socket编程(物联技术666)

更多配套资料CSDN地址:点赞+关注,功德无量。更多配套资料,欢迎私信。 物联技术666-CSDN博客物联技术666擅长嵌入式C语言开发,嵌入式培训笔记,嵌入式硬件,等方面的知识,物联技术666关注机器学习,arm开发,物联网,嵌入式硬件,单片机领域.https://blog.csdn.net/weixin_3980490…

8.1 Centos安装部署Redis

文章目录 前言一、下载Redis二、编译Redis三、配置redis.conf四、启动Redis服务端五、启动Redis客户端测试前言 本文将手把手演示在CentOS7上安装部署Redis。 一、下载Redis 可以使用wget命令进行下载,这里下载到/app目录 wget http://download.redis.io/releases/redis-5.…

Codeforces Round 908 (Div. 2) C. Anonymous Informant (思维题)

题目链接 思路: 考虑到 k 的范围很大, 肯定不能进行模拟。 通过观察以及题目的条件, a[i] i 时是定点, 并循环左移 i 次, 则左移后, 数组的最后一位即为该定点, 且通过这个定点可以知道此定点未左移时, 数组的第一个数是什么, 也就可以知道当时数组的最后一个数是什么, 即又找…

webserver面试

1 难点 1.1 网络框架的选取 常见的有reactor和proactor,在linux中&#xff0c;异步io不完善&#xff0c;所以很多项目都采用reactor模式。我又参考了开源的项目&#xff0c;最终选择使用同步io模拟异步的模式。 1.2 RAII 参考开源项目&#xff0c;资源获取即初始化&#xf…

Centos安装Datax

Centos7安装DataX 一、DataX简介二、DataX的数据源支持三、安装DataX1、下载DataX2、解压3、检验是否安装成功4、使用 四、实践案例1、环境信息2、编写同步的配置文件(user_info.json)3、执行同步4、验证同步结果 一、DataX简介 DataX 是阿里云 DataWorks数据集成 的开源版本&a…