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

dp 就 dp ,数位dp是什么意思 ?

在这里插入图片描述

                                                                  💧 dp 就 dp ,数位dp是什么意思 ?💧          


🌷 仰望天空,妳我亦是行人.✨
🦄 个人主页——微风撞见云的博客🎐
🐳 数据结构与算法专栏的文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺
🪁 希望本文能够给读者带来一定的帮助🌸文章粗浅,敬请批评指正!🐥


文章目录

  • 🌊数位dp的概念
    • 问题提要
    • 思路分析
    • 如何求解
    • 代码实现
      • 🎋slove()
      • 🎋dfs():
    • 🎏完整题解代码
  • 🌊巩固加深
  • 🐳结语


🌊数位dp的概念

💧数位dp的概念:是一种计数用的dp,通常是统计一个区间[l,r]内满足一些条件数的个数。

💧数位的含义:一个数有个位、十位、百位、千位…数的每一位就即数位。

💧数位dp的本质数位dp的本质就是以另一种形式的暴力枚举,同时这种枚举方式满足dp的性质,通常采用dfs+dp进行记忆化搜索。
的算法。

问题提要

我们以一道蓝桥杯2021年的国赛题目:二进制问题 来讲解:

    🍊题目是这样的:小蓝\color{#00BFFF}{小蓝}小蓝最近在学习二进制。他想知道 1到N 中有多少个数满足其二进制表示中恰好有 K 个 1。你能帮助他吗?(1 ≤ N ≤ 10^18, 1 ≤ K ≤ 50)

思路分析

    可以看到,给出的数据特别大,直接暴力肯定超时。其实这是一道经典数位DP问题,询问[1,N]中满足二进制有K个1的数字数目。数位dp解决的就是从某个区间中,求出满足特殊要求的数字数目。那我们应该怎样去做呢?

如何求解

    🍊在介绍数位dp之前,我们要先了解一个数位字典序的概念:

💧我们把数字大小 — 转换为 —> 数位字典序的大小
例如区间[1,12345],将长度小于5的数字补全前导0,1→00001 , 123 →00123
小于12345的数字,即等同于字典序小于12345

💧本题为二进制,则转换成二进制字典序枚举,100的二进制表示形式是1100100,转换为字典序即: [0,100]=>[0000000,1100100]
这样的话,题目中问我们二进制中一共有多少个K是不是就简单了?我们只需要去枚举每一位

💧对于每一位,我们只需要确定它当前的取值范围是多少即可。那取值范围又是由什么因素决定的呢?我们很容易想到,在二进制中,如果高位是1的位置我给它取零的话,那他后面无论怎么取,就算全取1,也不会比它原来的值大

💧而我们刚才提到的“取1” or “取0”,其实就是在判断当前位的上限和之前位的上限,仔细想想看是否如此?
💧例如一个数为1000,假如把最高位变成0,那么0111也一定没有1000大,对于二进制而言,我们最大所能取到的数就是1,十进制最大能取的数是9,由于题目是二进制,所以我们这里的上限就是1

🥏这里用dfs进行求解:

最高位到最低位按位枚举,我们需要记录以下一些内容:

  • 枚举当前是第几位
  • 当前存在多少个1
  • 当前这一位可以填的上限是多少

前面两个都好处理,第三个变量“上限是多少”,这个我们如何来维护呢?
当前这一位可以填的上限是多少?[0,100] =>[0000000,1100100]

对于第3位:
如果前两位填了1,则第3位上限只能是0。
如果前两位没有达到上限,那么第3位就是二进制的取值范围[0,1]
为了维护这些状态,我们需要一个变量来记录前面所有数字是否达到上限!如果达到上限,那当前位就只能取原来数中该位的值,否则可以取该进制下最大的值。

代码实现

🎋slove()

这个方法主要是将数字转换成数位的字典序来存储,这里直接右移即可。然后枚举从高位开始以dfs搜索的方式进行枚举。

   long solve(long n) {int len = 0;while (n != 0) {//将数字的二进制存储在num里面(默认二进制右边是第一位)num[++len] = (int) (n & 1);n >>= 1;}return dfs(len, 0, true);}

🎋dfs():

我们定义一个函数叫dfs(int len, int sum, boolean limit)
每个参数的含义分别是:

  • len :当前是第几位
  • sum :当前共有多少个1
  • limit :当前是否达到上限
    static long dfs(int len, int sum, boolean limit) {if (len == 0) return sum == K ? 1 : 0;//递归出口//计算当前位的上限int up = limit ? num[len] : 1;//达到上限了吗?达到了就只能原样输出:否则就可以取二进制的最大值1.(这道题是二进制)long res = 0;for (long i = 0; i <= up; i++) {//对当前位能取到的情况进行暴力枚举,统计答案//第三个表达式:limit && i == up 的意思是:(注意短路与&&)//1.如果limit没有达到上限(false),那整个表达式永远不会达到上限,return false,下一次可以随便取//2.如果limit已经达到上限,那我还要判断一下当前位是否已经到了当前位的上限,//      2.1如果i == up,那总体就算达到上限,返回true,带着这个状态继续往下走。//      2.2如果i != up,就表明当前位上是没有达到上限的,所以总体来说也是没有达到上限的,可以带着false的状态继续深搜。res += dfs(len - 1, sum + (i == 1 ? 1 : 0), limit && i == up);}return res;}

仔细推敲一下,我们发现,这样的搜索方式存在很多重复枚举
当limit=False时,后续所有状态均为False,此时与原来的数字中的每个位无关,答案是相同的,所以我们采用记忆化搜索来达到一种剪枝的目的!

新加两行代码,用于记忆化搜索(备忘录)

//当limit == false的时候,后续所有状态均为false,此时与num数组无关,答案是相同的,采用记忆化搜索
//记忆化搜索DFS:只要这个状态的limit为false,并且曾经访问过,直接返回DP数组记录的答案。(没有达到上限时,我们搜到相同地方的答案都是一样的)
if (dp[len][sum] != -1 && !limit) return dp[len][sum];//如果没有达到上限并且该处有记录就直接return掉dp[len][sum] = res;//如果上一次达到上限,并且当前情况(len,sum)没有出现过记录,那么我们就在这里给它做记录

完整dfs代码如下:

    long dfs(int len, int sum, boolean limit) {if (len == 0) return sum == K ? 1 : 0;if (dp[len][sum] != -1 && !limit) return dp[len][sum];int up = limit ? num[len] : 1;long res = 0;for (long i = 0; i <= up; i++) res += dfs(len - 1, sum + (i == 1 ? 1 : 0), limit && i == up);dp[len][sum] = res;return res;}

🎏完整题解代码

import java.io.*;
import java.util.*;/*** @Auther: LiangXinRui* @Date: 2023/3/24 11:33* @Description: 数位DP*/
public class Main {static long n, K;static long[][] dp = new long[66][66];//长度为len且1的个数为sum时的值(备忘录)static int[] num = new int[66];//用数组来存储n的二进制static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));public static void main(String[] args) throws IOException {n = nextLong();K = nextLong();out.println(solve(n));out.flush();}/*** @param len   :当前是第几位* @param sum   :表示多少个1* @param limit :表示是否达到上限* @deprecated :这样写 : ~a != 0 就是说 a != -1*/static long dfs(int len, int sum, boolean limit) {if (len == 0) return sum == K ? 1 : 0;//递归出口//当limit == false的时候,后续所有状态均为false,此时与num数组无关,答案是相同的,采用记忆化搜索//记忆化搜索DFS:只要这个状态的limit为false,并且曾经访问过,直接返回DP数组记录的答案。(没有达到上限时,我们搜到相同地方的答案都是一样的)if (dp[len][sum] != -1 && !limit) return dp[len][sum];//如果没有达到上限并且该处有记录就直接return掉//计算当前位的上限int up = limit ? num[len] : 1;//达到上限了吗?达到了就只能原样输出:否则就可以取二进制的最大值1.(这道题是二进制)long res = 0;for (long i = 0; i <= up; i++) {//对当前位能取到的情况进行暴力枚举,统计答案//第三个表达式:limit && i == up 的意思是:(注意短路与&&)//1.如果limit没有达到上限(false),那整个表达式永远不会达到上限,return false,下一次可以随便取//2.如果limit已经达到上限,那我还要判断一下当前位是否已经到了当前位的上限,//      2.1如果i == up,那总体就算达到上限,返回true,带着这个状态继续往下走。//      2.2如果i != up,就表明当前位上是没有达到上限的,所以总体来说也是没有达到上限的,可以带着false的状态继续深搜。res += dfs(len - 1, sum + (i == 1 ? 1 : 0), limit && i == up);}dp[len][sum] = res;//如果上一次达到上限,并且当前情况(len,sum)没有出现过记录,那么我们就在这里给它做记录return res;}static long solve(long n) {for (long[] longs : dp) Arrays.fill(longs, -1);//初始化dpint len = 0;while (n != 0) {//将数字的二进制存储在num里面(默认二进制右边是第一位)num[++len] = (int) (n & 1);n >>= 1;}return dfs(len, 0, true);}static long nextLong() throws IOException {in.nextToken();return (long) in.nval;}
}

在这里插入图片描述

🌊巩固加深

题目:不要62

大致意思&&思路:

数位上不能有4也不能有连续的62,没有4的话在枚举的时候判断一下,不枚举4就可以保证状态合法了,
所以这个约束没有记忆化的必要,而对于62的话,涉及到两位,当前一位是6或者不是6这两种不同情况我计数是不相同的,所以要用状态来记录不同的方案数。
dp[pos][sta]表示当前第pos位,前一位是否是6的状态,这里sta只需要去0和1两种状态就可以了,不是6的情况可视为同种,不会影响计数。
输入1 100
输出80

import java.util.Arrays;
import java.util.Scanner;public class Main {static int left, right;//dp[pos][sta]表示当前第pos位,前一位是否是6的状态,这里sta只需要去0和1两种状态就可以了,不是6的情况可视为同种,不会影响计数。static int[][] dp = new int[20][2];static int[] a = new int[20];static long dfs(int pos, int pre, int sta, boolean limit) {if (pos == -1) return 1;if (!limit && dp[pos][sta] != -1) return dp[pos][sta];int up = limit ? a[pos] : 9;int temp = 0;for (int i = 0; i <= up; i++) {if (pre == 6 && i == 2) continue;if (i == 4) continue;temp += dfs(pos - 1, i, i == 6 ? 1 : 0, limit && i == a[pos]);}if (!limit) dp[pos][sta] = temp;return temp;}static long solve(int x) {int pos = 0;while (x != 0) {a[pos++] = x % 10;x /= 10;}return dfs(pos - 1, -1, 0, true);}public static void main(String[] args) {Scanner cin = new Scanner(System.in);left = cin.nextInt();right = cin.nextInt();for (int[] ints : dp) Arrays.fill(ints, -1);System.out.println(solve(right) - solve(left - 1));}
}

在这里插入图片描述


🐳结语

🐬初学一门技术时,总有些许的疑惑,别怕,它们是我们学习路上的点点繁星,帮助我们不断成长。

🐟文章粗浅,希望对大家有帮助!

🦄参考:数位dp总结 之 从入门到模板 、蓝桥云课

相关文章:

Linux 更新 TeX Live

说明:如果你想要更新 TeX Live,建议依然采用下面的全新安装教程。因为不同版本的 TeX Live 可以共存,所以除非有明确的原因要更新 TeX Live,否则建议采用全新安装的操作。下载 update-tlmgr-latest.sh: wget https://mirror.ctan.org/systems/texlive/tlnet/update-tlmgr-…...

[AGC001F] Wide Swap

[AGC001F] Wide Swap trick+拓扑排序+线段树好题 看到题目的操作,显然是复杂、不好的。为什么?交换操作是无序的,我们不知道交换后对各个部分的影响,难以分析。这时候我们注意到 \(|P_i-P_j|=1\) 的性质非常特殊,考虑从这里入手。 如果以值域为系,那么会发现排列中的每个…...

使用实验室资源发现没有nvcc?

使用实验室资源结果 ` nvcc -V Command nvcc not found, but can be installed with: apt install nvidia-cuda-toolkit Please ask your administrator.` 但一般实验室应该已经安装好了对应的软件 找到对应的路径,添加到bashrc中 https://blog.csdn.net/chengxy1998/article/…...

神经网络进阶学习文章(一)

1.讲解YOLO有关知识 深入浅出Yolo系列之Yolov5核心基础知识完整讲解 - 知乎 (zhihu.com) 2.目标检测算法综述 目标检测算法综述 - 知乎 (zhihu.com) 3.TensorFlow详解&#xff0c;当然现在用的最多的是Pytorch框架了 谷歌大神带你十分钟看懂TensorFlow - 知乎 (zhihu.co…...

统一SQL 支持Oracle unpivot列转行

统一SQL介绍 https://www.light-pg.com/docs/LTSQL/current/index.html 源和目标 源数据库&#xff1a;Oracle 目标数据库&#xff1a;TDSQL-MySQL 操作目标 在Oracle中&#xff0c;可以使用unpivot将列转换成行&#xff0c;在TDSQL-MySQL中没有对应的功能&#xff0c;由…...

C#下使用正则表达式

常用元字符字符 描述\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,n 匹配字符 "n"。\n 匹配一个换行符。序列 \\ 匹配 "\" 而 "\(" 则匹配 "("。^ 匹配输入字符串的开始位置。如果…...

dp 就 dp ,数位dp是什么意思 ?

&#x1f4a7; dp 就 dp &#xff0c;数位dp是什么意思 &#xff1f;&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主页——微风撞见云的博客&#x1f390; &#x1f433; 数据结构与算法专栏的文章图文并茂&#x1f995;生动…...

MySQL面试必看

1.MySQL中的索引用的是什么数据结构 Innodb使用B树数据结构 1.Hash表&#xff1a;等值查询效率比较高、但是不支持范围查询。 2.二叉树&#xff1a;时间复杂度log2n 缺点&#xff1a;有可能产生不平衡 类似于链表的结构 时间复杂度为o(n)。 3.平衡二叉树avl/红黑树&#xff1a…...

2023年全国最新道路运输从业人员精选真题及答案34

百分百题库提供道路运输安全员考试试题、道路运输从业人员考试预测题、道路安全员考试真题、道路运输从业人员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 28.根据《放射性物品运输安全管理条例》规定&#xff0c;运输放…...

python -- 科研论文海洋气象科学绘图的配色汇总

海洋气象科学科研绘图中常用的配色[1、ColorBrewer 彩色地图&#xff0c;默认情况下包含在 matplotlib 中](https://colorbrewer2.org/#typesequential&schemeBuGn&n3)[2、proplot package 自带的色系](https://proplot.readthedocs.io/en/latest/colormaps.html#ug-pe…...

Prometheus监控实战系列二: 安装部署

Prometheus支持多种操作系统&#xff0c;例如Linux、Windows和Max OSX等。在产品官网上提供了独立的二进制文件进行下载&#xff0c;可下载对应的tar包并在相应系统的服务器上进行安装部署。当然&#xff0c;做为与容器有着紧密联系的监控系统&#xff0c;Promethesu也可以很方…...

欧莱雅校招负责人张泽宇:拥抱Z世代,探索新玩法

作为校招HR&#xff0c;你在雇主品牌创新实践的路上做过什么尝试&#xff1f; 2020年&#xff0c;欧莱雅正式推出了全新的雇主品牌价值主张 —— 敢为敢超越&#xff0c;就是欧莱雅&#xff08;Freedom to go beyond, thats the beauty of L’ORAL&#xff09;&#xff0c;鼓励…...

安装python教程并解决Python安装完没有Scripts文件夹问题

安装python教程 并解决Python安装完没有Scripts文件夹问题 ** 一背景 **首先要了解这个出现的原因是下载安装的版本问题 系統是32 bit 的版本还是 64bit 的 web-based: 透过网络安装的&#xff0c;就是执行安装后才透过网络下载python executable: 可執行文件的&#xff…...

牛客论坛项目总结

目录 1.请简要介绍一下你的项目&#xff1f; 1.如何实现项目的注册问题 2.项目如何实现用户唯一性检验 3.登录状态保存在哪 4.用户登陆上之后怎么显示登录页面 5.拦截器&#xff08;Interceptor&#xff09; 6.ThreadLocal&#xff08;线程安全&#xff09; 7.md5原理知…...

【Python学习笔记】b站@同济子豪兄 用pytorch搭建全连接神经网络,对Fashion-MNIST数据集中的时尚物品进行分类

【Python学习笔记】原作b站同济子豪兄 用pytorch搭建全连接神经网络&#xff0c;对Fashion-MNIST数据集中的时尚物品进行分类 跟着b站同济子豪兄的视频自学写的代码&#xff0c;内容是用pytorch搭建全连接神经网络&#xff0c;对Fashion-MNIST数据集中的时尚物品进行分类 视频…...

2年功能测试月薪9.5K,100多天自学自动化,跳槽涨薪4k后我的路还很长...

前言 其实最开始我并不是互联网从业者&#xff0c;是经历了一场六个月的培训才入的行&#xff0c;这个经历仿佛就是一个遮羞布&#xff0c;不能让任何人知道&#xff0c;就算有面试的时候被问到你是不是被培训的&#xff0c;我还是不能承认这段历史。我是为了生存&#xff0c;…...

【IoT 毕业设计】Ruff硬件+阿里云IoT+微信小程序构建环境监控系统

0.技术架构 IoT 物联网毕业设计实战采用 Ruff 开发板&#xff0c;串口连接温湿度传感器DHT11和空气质量传感器SDS011&#xff0c;每5分钟采集一次数据&#xff0c;通过MQTT协议发送到阿里云 IoT 物联网平台&#xff0c;写入云端的设备影子中。微信小程序调用阿里云函数计算FC…...

【VUE3】计算属性及其缓存特性

计算属性 基础示例 模板中的表达式虽然方便&#xff0c;但也只能用来做简单的操作。如果在模板中写太多逻辑&#xff0c;会让模板变得臃肿&#xff0c;难以维护。比如说&#xff0c;我们有这样一个包含嵌套数组的对象&#xff1a; const author reactive({name: John Doe,b…...

【计算机网络】从输入网址到网页显示,期间发生了什么?

【计算机网络】从输入网址到网页显示&#xff0c;期间发生了什么&#xff1f; 接下来以下图较简单的网络拓扑模型作为例子&#xff0c;探究探究其间发生了什么&#xff1f; 文章目录【计算机网络】从输入网址到网页显示&#xff0c;期间发生了什么&#xff1f;一&#xff1a;孤…...

【vue2】近期bug收集与整理01

&#x1f973;博 主&#xff1a;初映CY的前说(前端领域) &#x1f31e;个人信条&#xff1a;想要变成得到&#xff0c;中间还有做到&#xff01; &#x1f918;本文核心&#xff1a;记录博主在vue2中遇到过的坑&#xff0c;本文是博主的学习使用总结 目录 1登陆token的问…...

JSON和AJAX

JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式&#xff0c;而且很多语言都提供了对json的支持(包括C&#xff0c;C&#xff0c;C#&#xff0c;Java&#xff0c;JavaScript…...

Python入门到精通【精品】第六章 - 函数

Python入门到精通【精品】第六章 - 函数 1. 如何理解函数2. 函数的定义3. 函数的使用3.1. 函数的调用3.2. 实参与形参3.3. 函数的返回3.4. 完整的函数设计3.5. 位置参数和关键参数1. 如何理解函数 当你第一次接触到“函数”这个概念的时候,你肯定会不由自主的联想到数学里面也…...

春招大盘点:找工作除了招聘网站还有哪些渠道?

又是一年毕业季&#xff0c;估计同学们都正在写论文、找工作两头忙&#xff0c;很多同学和小C“诉苦”说现在找实习的渠道太少了&#xff0c;招聘网站都刷完了&#xff0c;也没看到很合适的岗位。那找工作除了招聘网站还有什么渠道呢&#xff1f;其实是有的&#xff0c;今天就为…...

雷电4模拟器安装xposed框架(2022年)

别问我都2202年了为什么还在用雷电4安卓7。我特么哪知道Xposed的相关资料这么难找啊&#xff0c;只能搜到一些老旧的资料&#xff0c;尝试在老旧的平台上实现了。 最初的Xposed框架现在已经停止更新了&#xff0c;只支持到安卓8。如果要在更高版本的安卓系统上使用Xposed得看看…...

Gartner发布CNAPP市场指南 腾讯云为国内唯一入选云厂商

近日&#xff0c;国际研究机构Gartner发布《Market Guide for Cloud-Native Application Protection Platforms》&#xff08;《云原生应用保护平台&#xff08;CNAPP&#xff09;市场指南》&#xff09;&#xff08;以下简称《市场指南》&#xff09;&#xff0c;腾讯云凭借集…...

数字藏品应用场景分析

数字藏品应用场景广泛&#xff0c;个人资料图片&#xff08;PFP&#xff09;元宇宙、艺术收藏、游戏、体育、文物、音乐等等都可以上链&#xff0c;以数字藏品的形式发行。国际市场中&#xff0c;个人资料图片占大多数&#xff0c;国内多以艺术收藏、文物藏品等为主。 数字藏品…...

spring boot项目:实现与数据库的连接

步骤【写在前面】定义数据库连接信息&#xff1a;引入数据库驱动&#xff1a;创建数据源&#xff1a;创建JdbcTemplate&#xff1a;编写DAO层&#xff1a;使用Service注解标注Service层&#xff1a;使用RestController注解标注Controller层&#xff1a;示例代码&#xff1a;app…...

解析vue中的process.env

一、介绍 1、process process是 nodejs 下的一个全局变量&#xff0c;它存储着 nodejs 中进程有关的信息。 2、process.env env 是 environment 的简称&#xff0c;process.env属性返回一个包含用户环境的对象。 3、dotenv Dotenv 是一个零依赖的模块&#xff0c;它能将环境变…...

ESP32 开启 Wi-Fi 热点与手机端 Iperf 测试 APP 来测试 ESP32 Wi-Fi AP 速率的流程

# 测试需求&#xff1a; ESP32 开启 WiFi AP Server 模式手机连接 ESP32 WiFi AP 热点通过手机端 Iperf 测试 APP 测试 ESP32 WiFi 热点的 Iperf 速率 测试用例&#xff1a; 可以基于 “esp-idf/examples/wifi/iperf” 例程进行测试。ESP32 设备下载 Iperf 例程后&#xff0…...

msfconsole之制作windows木马并成功获取shell

msfconsole之制作windows木马并成功获取shell 一、工具简介     msfconsole 简称 msf 是一款常用的安全测试工具&#xff0c;包含了常见的漏洞利用模块和生成各种木马&#xff0c;其提供了一个一体化的集中控制台&#xff0c;通过msfconsole&#xff0c;你可以访问和使用所…...

【小杨带你玩转C语言】(入门篇)初识C语言(下)

本章目录 每篇前言1.导语 2.目标 3.知识点 一&#xff0c;常见关键字       1&#xff0c;认识关键字       2&#xff0c;关键字分类           2.1&#xff0c;数据类型关键字             2.1.1&#xff0c;基本数据类型关键字             2.…...

一文快速回顾 Java 操作数据库的方式-JDBC

前言 数据库的重要性不言而喻&#xff0c;不管是什么系统&#xff0c;什么应用软件&#xff0c;也不管它们是 Windows 上的应用程序&#xff0c;还是 Web 应用程序&#xff0c;存储&#xff08;持久化&#xff09;和查询&#xff08;检索&#xff09;数据都是核心的功能。 大…...

92年程序员发帖晒薪资称自己很迷茫,网友:老弟你可以了

当下&#xff0c;是一个“向钱看&#xff0c;向厚赚”的社会。快节奏的生活下&#xff0c;家庭、工作各方面压力很容易使年轻人陷入迷茫和焦虑。 与其他行业相比&#xff0c;程序员的高薪让人羡慕。那么&#xff0c;对于那些真正达到这么多收入的人来说&#xff0c;他们是怎么…...

太敢说了,编程如果这么自学,培训班都得倒闭,直接省去上万元的学费

写了20多年的代码&#xff0c;之前做过阿里的高级架构师&#xff0c;在技术这条路上跌跌撞撞了很多&#xff0c;我今天分享一些我个人的自学方法给各位。现在在网上报个正经点的班得花几千块钱&#xff0c;线下就更夸张&#xff0c;都是万元起步,我的这些学习方法如果你能用好&…...

别急着给中国版ChatGPT唱赞歌:“追风者”无缘“星辰大海”

文心一言发布十余天后&#xff0c;争论仍未有止歇的迹象。 有人给出了“拉垮”的评价&#xff0c;相比于多轮迭代的ChatGPT&#xff0c;文心一言在逻辑推理、多轮对话等方面的表现不尽如人意&#xff1b;也有人认为给文心一言值得肯定&#xff0c;原因是填补了中文互联网的空白…...

异常:Error和Exception

异常机制&#xff08;Exception&#xff09; 什么是异常 实际工作中&#xff0c;遇到的情况不可能是非常完美的。比如&#xff1a;你写的某个模块&#xff0c;用户输入不一定符合你的要求、你的程序要打开某个文件&#xff0c;这个文件可能不存在或者文件格式不对&#xff0c…...

Python满屏表白代码

目录 前言 爱心界面 无限弹窗 前言 人生苦短&#xff0c;我用Python&#xff01;又是新的一周啦&#xff0c;本期博主给大家带来了一个全新的作品&#xff1a;满屏表白代码&#xff0c;无限弹窗版&#xff01;快快收藏起来送给她吧~ 爱心界面 def Heart(): roottk.Tk…...

Unity --- Transform类

1.一个很有意思的事实是Transform类不仅用来管理游戏物体的位置缩放旋转&#xff0c;还用来管理游戏物体的父物体与子物体之间的关系 当游戏物体A的trasnform类a是游戏物体B的transform类b的父类的话&#xff0c;游戏物体A就是游戏物体B的父物体 2.如何访问脚本当前挂载的游戏…...

ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found

Bug描述 今天主要解决一个 Bug&#xff1a;libstdc.so.6: version GLIBCXX_3.4.29 not found 主要是和 libstc版本问题相关&#xff0c;找了很多方法&#xff0c;其他很多方法都是直接修改libstc.so的版本&#xff0c;但是直接修改这种可能被多个共享库依赖的库版本将会牵一发…...

Unity IL2CPP 游戏分析入门

一、目标 很多时候App加密本身并不难&#xff0c;难得是他用了一套新玩意&#xff0c;天生自带加密光环。例如PC时代的VB&#xff0c;直接ida的话&#xff0c;汇编代码能把你看懵。 但是要是搞明白了他的玩法&#xff0c;VB Decompiler一上&#xff0c;那妥妥的就是源码。 U…...

设置鼠标右键打开方式,添加IDEA的打开方式

一、问题描述 已下载IDEA&#xff0c;但是右键打开之前保存的项目文件&#xff0c;无法显示以IDEA方式打开。 二、解决步骤 1. 打开注册表 winR键输入regedit 2、查找路径为计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell &#xff08;我找了半天没看到Class…...

手机(Android)刷NetHunter安装指南,无需ssh执行kali命令, NetHunter支持的无线网卡列表!

一、安装NetHunter 前提&#xff1a;确保手机已经root&#xff0c;已装上magisk。如果没有root&#xff0c;可用尝试magisk root 后执行此文 1、下载Nethunter&#xff1a;Get Kali | Kali Linux 然后push 到sdcard 里&#xff0c; 2、打开magisk&#xff0c;选择刚刚下好的…...

Maven和Eclipse联合开发

Maven和Eclipse联合开发 java list 对象个数 size java List 取第一个对象.get(0) baseCrmSpecialclient.get(0).getFxid() System.out.print 换行 System.out.print(item.getCode()"\r\n"); java for循环用法 https://blog.csdn.net/rank/list/total Java for-ea…...

宝塔面板部署node+vue项目注意事项

宝塔面板部署nodevue项目注意事项 宝塔连接云服务器 如果服务器上没有安装宝塔面板&#xff0c;需要先安装&#xff0c;安装流程如下&#xff1a; 从宝塔官网主页进去&#xff0c;点击下载安装&#xff0c;然后点击在线安装 输入服务器IP和密码在服务器上安装宝塔面板 等待一…...

MATLAB | R2023a更新了哪些好玩的东西

R2023a来啦&#xff01;&#xff01;废话不多说看看新版本有啥有趣的玩意和好玩的特性叭&#xff01;&#xff01;把绘图放最前面叭&#xff0c;有图的内容看的人多。。 1 区域填充 可以使用xregion及yregion进行区域填充啦&#xff01;&#xff01; x -10:0.25:10; y x.^…...

MySQL对表操作

目录 CRUD 增加(Create) 查询&#xff08;Retrieve&#xff09; 全列查询 指定列查询 查询字段为表达式 别名 去重&#xff1a;DISTINCT 排序&#xff1a;ORDER BY 条件查询&#xff1a;WHERE 逻辑运算符&#xff1a; 修改&#xff08;Update&#xff09; 删除&…...

Downie 4 4.6.12 MAC上最好的一款视频下载工具

Downie for Mac 简介 Downie是Mac下一个简单的下载管理器&#xff0c;可以让您快速将不同的视频网站上的视频下载并保存到电脑磁盘里然后使用您的默认媒体播放器观看它们。 Downie 4 Downie 4 for Mac Downie 4 for Mac软件特点 支持许多站点 -当前支持1000多个不同的站点&…...

使用Android高性能音频--OpenSL ES和AAudio

AAudio的概念介绍: AAudio 是作为 OpenSL ES 库的轻量级原生 Android 替代项而开发。 与 OpenSL ES 相比&#xff0c;AAudio API 不仅较小&#xff0c;而且容易使用。 AAudio 是在 Android O 版本中引入的全新 Android C API。 因此 API 是专为需要低延迟的高性能音频应用而设…...

eNSP 构建基本WLAN

配置项配置参数AP组 名称&#xff1a;hcia-group 应用模板&#xff1a;域管理模板hcia-domain、VAP模板hcia-vap 域管理模板 名称&#xff1a;hcia-domain 国家码&#xff1a;cn SSID模板 名称&#xff1a;hcia-ssid SSID名称&#xff1a;hcia-wlan 安全模板 名称&#xff1a;h…...

记录一次C#/.NET以及VB p-code/native的逆向破解

记录一次C#/.NET以及VB p-code/native的逆向破解 玩了5份样本&#xff0c;2份dotnet的&#xff0c;2份native的和1份pcode的。 dotnet framework程序 dotnet的相对会简单&#xff0c;只需要使用dnspy工具打开目标程序&#xff0c;找到逻辑点后&#xff0c;点编辑函数&#xff0…...

IO-操作系统

用户态和内核态 现代操作系统&#xff0c;为了保护系统的安全&#xff0c;都会划分出内核空间和用户空间&#xff0c;或者我们经常说的内核态和用户态。简单来说&#xff0c;就是划分为内核态和用户态两个等级&#xff0c;运行在用户态的进程大都是一些应用程序&#xff0c;能够…...

Elasticsearch基本查询语法

先造点数据 基于elasticsearch7.10.0 POST /hotel {"mappings":{"properties":{"title":{"type":"text"},"city":{"type":"keyword"},"price":{"type":"double&q…...

百度地图入门

百度地图官网百度api 进入官网选择javascript API 里面有详细的教程&#xff0c; 跟着教程先登录注册一个个人开发账号 并创建一个应用获取ak 创建时js需要填白名单&#xff0c;如果是在本地运行填写localhost就好了 当你在控制台看到这个界面是代表创建成功了&#xff0c;…...

Endor Labs:2023年十大开源安全风险

近日&#xff0c;Endor Labs发布了一份新报告&#xff0c;确定了2023年的十大开源安全风险。报告显示&#xff0c;许多软件公司依赖于开源软件代码&#xff0c;但在如何衡量和处理与开源软件相关的风险和漏洞方面缺乏一致性。调查发现&#xff0c;在应用程序中超过80%的代码可能…...

linux 产生随机数 并遍历

1、产生随机数 varRANDOMvarRANDOM varRANDOMvar[ $var % 150 ] 2、产生不重复的随机数 $ entries($(shuf -i 0-149 -n 15)) $ echo “${entries[]}” 3、对随机数排序 $ entries($(shuf -i 0-149 -n 15 | sort -n)) $ echo “entries[]"12224549546678798393118119124140…...

OAuth2协议

OAuth2协议流程图协议角色和流程授权所需信息授权方式授权码模式&#xff08;authorization code&#xff09;参数简化模式密码模式客户端模式授权方式小结流程图 协议角色和流程 user-agent&#xff1a;浏览器或者手机App平台 资源所有者&#xff08;resourc owner&#xff0…...

1.C++入门

目录 1.C关键字 2.命名空间 作用域方面的优化 a.命名空间定义 b.命名空间使用 3.C 输入&输出 1.C关键字 C有63个关键字&#xff0c;C语言有32个关键字&#xff0c;存在重叠如荧光笔标出 2.命名空间 作用域方面的优化 如果变量&#xff0c;函数和类的名称都存在于全…...

Linux文本处理三剑客:awk、grep和sed

Linux文本处理三剑客&#xff1a;awk、grep和sed的完美结合 在Linux世界里&#xff0c;文本处理是一项至关重要的任务。无论是日常的系统管理还是复杂的软件开发&#xff0c;都需要对文本数据进行提取、过滤和转换。Linux为我们提供了三款强大的文本处理工具&#xff1a;awk、…...

轮转数组(Leedcode)的题目

题目&#xff1a;给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步…...

css-Echarts图表初始显示异常非完全显示

1.echarts图表初始加载异常 2.问题原因 初次加载时&#xff0c;由于外层使用%比 echarts dom元素没有完全加载完成&#xff0c;canvas绘画继承本身宽高&#xff0c;造成Echarts图表初始显示异常非完全显示。 3.使用echarts图表可参考以下代码&#xff08;实现一定的自适应&am…...

Oracle交换分区测试

1、用exchange分区表减少初始化过程中对业务中断的影响 2、创建分区表 create table t_p (id number,name varchar2(30),addr varchar2(50)) partition by range(id) (partition p1 values less than(10), partition p2 values less than(20), partition p3 values less …...

vue 钩子函数

目录 钩子函数概念 生命周期钩子函数 keep-alive 钩子函数 自定义指令的钩子函数 路由导航 / 路由守卫 钩子函数 全局守卫 路由独享守卫 导航守卫 钩子函数概念 在 vue 中可以自动执行的函数叫做钩子函数 生命周期钩子函数 vue 从实例创建到销毁过程中被自动执行的函…...