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

LeetCode --- 433周赛

题目列表

3427. 变长子数组求和
3428. 最多 K 个元素的子序列的最值之和
3429. 粉刷房子 IV
3430. 最多 K 个元素的子数组的最值之和

一、变长子数组求和

3427. 变长子数组求和
题意要求我们能快速算出 n u m s [ s t a r t . . . i ] nums[start...i] nums[start...i] 这段区间和,其中 s t a r t = m a x ( 0 , i − n u m s [ i ] ) start = max(0, i-nums[i]) start=max(0,inums[i])。求任意区间之和,可以用前缀和来计算。

  • 对于区间 [ l , r ] [l,r] [l,r],可以用 p r e [ r + 1 ] − p r e [ l ] pre[r+1] - pre[l] pre[r+1]pre[l] 计算出区间和, p r e [ i ] pre[i] pre[i] 表示前 i i i 个数的和 ( p r e [ i + 1 ] = p r e [ i ] + n u m s [ i ] , p r e [ 0 ] = 0 pre[i+1]=pre[i] +nums[i],pre[0]=0 pre[i+1]=pre[i]+nums[i],pre[0]=0)

代码如下

class Solution {
public:int subarraySum(vector<int>& nums) {int n = nums.size();vector<int> pre(n + 1);for(int i = 0; i < n; i++){pre[i+1] = pre[i] + nums[i];}int ans = 0;for(int i = 0; i < n; i++){int start = max(0, i - nums[i]);ans += pre[i+1] - pre[start];}return ans;}
};// 可以同时计算前缀和 & 答案
class Solution {
public:int subarraySum(vector<int>& nums) {int n = nums.size();vector<int> pre(n + 1);int ans = 0;for(int i = 0; i < n; i++){pre[i+1] = pre[i] + nums[i];int start = max(0, i - nums[i]);ans += pre[i+1] - pre[start];}return ans;}
};

二、最多 K 个元素的子序列的最值之和

最多 K 个元素的子序列的最值之和
由于本题只关注子序列的最大和最小值,所以我们可以给原始数组排序,然后计算每个数作为最大值或最小值对于答案的贡献即可。
具体操作如下

  • 假设排序后 n u m s = [ 1 , 3 , 4 , 6 , 7 , 10 , 12 ] nums=[1,3,4,6,7,10,12] nums=[1,3,4,6,7,10,12],并且 k = 2 k=2 k=2
  • 对于 4 4 4 来说,它作为最大值出现了 ( 2 0 ) + ( 2 1 ) \binom{2}{0}+\binom{2}{1} (02)+(12) 次,即从 [ 1 , 3 ] [1,3] [1,3] 这两个数中选出 0 0 0 个或者 1 1 1 个数和 4 4 4 组成子序列。子序列的长度小于 k k k
  • 对于 4 4 4 来说,它作为最小值出现了 ( 4 0 ) + ( 4 1 ) \binom{4}{0}+\binom{4}{1} (04)+(14) 次,即从 [ 6 , 7 , 10 , 12 ] [6,7,10,12] [6,7,10,12] 这四个数中选出 0 0 0 个或者 1 1 1 个数和 4 4 4 组成子序列。子序列的长度小于 k k k
  • 其他数字同理,故一般的 n u m s [ i ] nums[i] nums[i] 对答案的贡献为 ( ∑ j = 0 m i n ( k − 1 , n l ) ( n l j ) + ∑ j = 0 m i n ( k − 1 , n r ) ( n r j ) ) × n u m s [ i ] (\sum_{j=0}^{min(k-1,n_l)}\binom{n_l}{j}+\sum_{j=0}^{min(k-1,n_r)}\binom{n_r}{j})\times nums[i] (j=0min(k1,nl)(jnl)+j=0min(k1,nr)(jnr))×nums[i],其中 n l n_l nl 为在 n u m s [ i ] nums[i] nums[i] 左边的数的个数, n r n_r nr 为在 n u m s [ i ] nums[i] nums[i] 右边的数的个数,此处的 n u m s nums nums 数组是排序后的

代码如下

const int MOD = 1e9 + 7;
const int MX = 1e5 + 1;
long long F[MX];
long long INV_F[MX];
// 快速幂
long long pow(long long x, int y) {long long res = 1;while(y){if(y & 1) res = res * x % MOD;x = x * x % MOD;y >>= 1;}return res;
}
int init = []{F[0] = 1;// 计算阶乘for(int i = 1; i < MX; i++){F[i] = F[i - 1] * i % MOD;}INV_F[MX-1] = pow(F[MX-1], MOD-2);// 计算 阶乘的逆元 即计算 1/n! % MOD 的结果for(int i = MX - 1; i; i--){INV_F[i-1] = INV_F[i] * i % MOD;}return 0;
}();
// 计算 C(n,m) = n!/(m!(n-m)!) = n! * (1/m!) * (1/(n-m)!)
int comb(int n, int m){ return F[n] * INV_F[m] % MOD * INV_F[n-m] % MOD;
}
class Solution {
public:int minMaxSums(vector<int>& nums, int k) {int n = nums.size();ranges::sort(nums);long long ans = 0;for(int i = 0; i < n; i++){long long s = 0;// 计算 nums[i] 作为最小值的子序列个数for(int j = 0; j < min(i + 1, k); j++){s += comb(i, j);}// 计算 nums[i] 作为最大值的子序列个数for(int j = 0; j < min(n - i, k); j++){s += comb(n - i - 1, j);}ans = (ans + s % MOD * nums[i]) % MOD;}return ans;}
};

优化:对于 ∑ j = 0 m i n ( k − 1 , n i ) ( n i j ) \sum_{j=0}^{min(k-1,n_i)}\binom{n_i}{j} j=0min(k1,ni)(jni) ,我们是否能在 O ( 1 ) O(1) O(1) 的时间内计算出来?即是否能利用之前计算出来的结果。

  • s i = ∑ j = 0 m i n ( k − 1 , n i ) ( n i j ) s_i=\sum_{j=0}^{min(k-1,n_i)}\binom{n_i}{j} si=j=0min(k1,ni)(jni),那么 s i + 1 = ? s_{i+1}=? si+1=?
  • 从实际意义出发, s i + 1 s_{i+1} si+1 表示从 n i + 1 n_{i+1} ni+1 个数中选出 0 , 1 , 2 , . . . , m i n ( k − 1 , n i + 1 ) 0,1,2,...,min(k-1,n_{i+1}) 0,1,2,...,min(k1,ni+1) 个数的所有可能方案, s i s_{i} si 表示从 n i n_{i} ni 个数中选出 0 , 1 , 2 , . . . , m i n ( k − 1 , n i ) 0,1,2,...,min(k-1,n_{i}) 0,1,2,...,min(k1,ni) 个数的所有可能方案,其中 n i + 1 = n i + 1 n_{i+1}=n_i+1 ni+1=ni+1,也就是说,两者的区别仅仅在于多出了一个数可选
  • s i s_i si 的合法方案数基础上,多出了一个数,有选和不选两种可能,所以共用 s i × 2 s_i\times2 si×2 个方案数。但是其中会包含已经选择了 k − 1 k-1 k1 个数,再多选一个数,就会非法的情况,所以需要减去 ( n i k − 1 ) \binom{n_i}{k-1} (k1ni) 的非法方案数
  • s i + 1 = s i × 2 − ( n i k − 1 ) s_{i+1}=s_i\times2-\binom{n_i}{k-1} si+1=si×2(k1ni)

代码如下

const int MOD = 1e9 + 7;
const int MX = 1e5 + 1;
long long F[MX];
long long INV_F[MX];
long long pow(long long x, int y) {long long res = 1;while(y){if(y & 1) res = res * x % MOD;x = x * x % MOD;y >>= 1;}return res;
}
int init = []{F[0] = 1;for(int i = 1; i < MX; i++){F[i] = F[i - 1] * i % MOD;}INV_F[MX-1] = pow(F[MX-1], MOD-2);for(int i = MX - 1; i; i--){INV_F[i-1] = INV_F[i] * i % MOD;}return 0;
}();
int comb(int n, int m){ // 注意 m > n 的非法情况return m > n ? 0 : F[n] * INV_F[m] % MOD * INV_F[n-m] % MOD;
}
class Solution {
public:int minMaxSums(vector<int>& nums, int k) {int n = nums.size();ranges::sort(nums);long long ans = 0, s = 1;for(int i = 0; i < n; i++){// 这里利用对称性,即对于[1,2,3,4,5]中的 1 和 5 而言,1 作为最小值的出现次数 等于 5 作为最大值的出现次数ans = (ans + s * (nums[i] + nums[n - i - 1])) % MOD;s = (2 * s - comb(i, k - 1) + MOD) % MOD;}return ans;}
};

三、粉刷房子 IV

粉刷房子 IV
我们对左右两边的房子涂色后,剩下的问题就成了剩下的房子如何涂色成本最低,显然这是一个子问题。所以本题可以用动态规划来做。
本题要求相邻房子的颜色不同,所以需要记录当前房子颜色,同时还要求对称房子的颜色也不同,所以还需要记录对称房子的颜色,故状态定义如下

  • 状态定义: f [ i ] [ j ] [ k ] f[i][j][k] f[i][j][k] 表示前后各 i i i 个房子涂色的最小成本,其中第 i i i 个房子涂色 j j j,第 n − i − 1 n-i-1 ni1 个房子涂色 k k k
  • 状态转移方程: f [ i ] [ j ] [ k ] = m i n ( f [ i − 1 ] [ a ] [ b ] ) + c o s t [ i ] [ j ] + c o s t [ n − i − 1 ] [ k ] f[i][j][k]=min(f[i-1][a][b])+cost[i][j]+cost[n-i-1][k] f[i][j][k]=min(f[i1][a][b])+cost[i][j]+cost[ni1][k],其中 j ! = k j!=k j!=k 保证对称位置的房子颜色不同, j ! = a , k ! = b j!=a,k!=b j!=ak!=b 保证相邻位置的房子颜色不同。
  • 初始化:根据状态定义 f [ 0 ] f[0] f[0] 表示前后各 0 0 0 个房子涂色的最小成本,显然为 0

代码如下

class Solution {
using LL = long long;
public:long long minCost(int n, vector<vector<int>>& cost) {// f[i][j][k] 表示前后各 i+1 个房子涂色的最小成本,其中第 i 个房子涂色 j,第 n-i-1 个房子涂色 kvector f (n / 2 + 1, vector(3, vector<LL>(3, LLONG_MAX/2)));f[0] = vector(3, vector<LL>(3));for(int i = 0; i < n/2; i++){for(int j = 0; j < 3; j++){for(int k = 0; k < 3; k++){if(j == k) continue;f[i+1][j][k] = min({f[i][(j+1)%3][(k+1)%3],f[i][(j+1)%3][(k+2)%3],f[i][(j+2)%3][(k+1)%3],f[i][(j+2)%3][(k+2)%3]}) + cost[i][j] + cost[n-i-1][k];}}}LL ans = LLONG_MAX/2;for(int i = 0; i < 3; i++){for(int j = 0; j < 3; j++){ans = min(ans, f.back()[i][j]);}}return ans;}
};

四、最多 K 个元素的子数组的最值之和

最多 K 个元素的子数组的最值之和
这题和第二题很相似,不同是本题要求的是子数组的最值之和,我们的思路一样,依旧是看每个数字作为最大值的贡献和作为最小值的贡献。
具体操作如下

  • 假设数组 n u m s = [ 1 , 5 , 4 , 6 , 3 , 4 , 4 , 9 ] , k = 3 nums=[1,5,4,6,3,4,4,9],k=3 nums=[1,5,4,6,3,4,4,9]k=3

    • 第一个 4 4 4 作为最大值,出现了 1 1 1 次,只有 [ 4 ] [4] [4] 一种情况,左右两边的数都比它大。贡献为 4 × 1 = 4 4\times1=4 4×1=4
    • 第一个 4 4 4 作为最小值,出现了 3 3 3 次,有 [ 4 ] , [ 5 , 4 ] , [ 4 , 6 ] [4],[5,4],[4,6] [4],[5,4],[4,6] 三种情况,再往外 1 1 1 3 3 3 都比它小。贡献为 4 × 3 = 12 4\times3=12 4×3=12
  • 故对于 n u m s [ i ] nums[i] nums[i],需要计算出它左右两边大于它的第一个数字下标,和小于它的第一个数字下标,这可以用单调栈解决。

    • 小技巧:我们可以只算数字作为最小值的贡献,然后将数组中的元素取相反数,这时候求最小值就等价于求它作为负数的最大值的贡献,我们只要将两个结果相减就能算出结果

      • 举个例子,将上面的 n u m s nums nums 取相反数得 [ − 1 , − 5 , − 4 , − 6 , − 3 , − 4 , − 4 , − 9 ] [-1,-5,-4,-6,-3,-4,-4,-9] [1,5,4,6,3,4,4,9]
      • 计算第一个 − 4 -4 4 作为最大值出现次数为 3 3 3,有 [ − 4 ] , [ − 5 , − 4 ] , [ − 4 , − 6 ] [-4],[-5,-4],[-4,-6] [4],[5,4],[4,6] 三种情况,贡献为 − 4 × 3 = − 12 -4\times3=-12 4×3=12
    • 下面我们只考虑数字作为最小值的贡献(当然只考虑最大值也是同理)

  • 假定对于数字 n u m s [ i ] nums[i] nums[i],已经用单调栈计算出了它左右两边大于它的第一个数字下标 L L L R R R,并且子数组的长度最大为 k k k

    • 如果 R − L − 1 ≤ k R-L-1\leq k RL1k,那么可以在 ( L , i ] (L,i] (L,i] 中任取一个数作为左端点,在 [ i , R ) [i,R) [i,R) 中任取一个数作为右端点,从而形成一个合法子数组,根据乘法原理,共有 ( i − L ) × ( R − i ) (i-L)\times(R-i) (iL)×(Ri) 种情况
    • 如果 R − L − 1 > k R-L-1>k RL1>k,具体情况如下图
      分类讨论
      • 公式推导:令 L = m a x ( L , i − k ) , R = m i n ( R , i + k ) L=max(L,i-k),R=min(R,i+k) L=max(L,ik),R=min(R,i+k) 缩小范围
      • 其中 a 0 = k − ( i − L ) + 1 a_0=k-(i-L)+1 a0=k(iL)+1 a n = R − i a_n=R-i an=Ri ,则等差数列求和为 ( a 0 + a n ) ( a n − a 0 + 1 ) / 2 = ( L + R − 2 i + k + 1 ) ( R − L − k ) / 2 (a_0+a_n)(a_n-a_0+1)/2=(L+R-2i+k+1)(R-L-k)/2 (a0+an)(ana0+1)/2=(L+R2i+k+1)(RLk)/2
      • R − i < k R-i<k Ri<k 时,还剩下 k − ( R − i ) k-(R-i) k(Ri) 个左端点有 R − i R-i Ri 个右端点,共有 ( k − ( R − i ) ) ( R − i ) (k-(R-i))(R-i) (k(Ri))(Ri) 种匹配方式
  • 注意重复统计问题,如 [ 2 , 3 , 2 , 1 ] [2,3,2,1] [2,3,2,1] 中第一个 2 2 2 作为最小值有 [ 2 ] , [ 2 , 3 ] , [ 2 , 3 , 2 ] [2],[2,3],[2,3,2] [2],[2,3],[2,3,2] 三种,第二个 2 2 2 作为最小值有 [ 2 ] , [ 3 , 2 ] , [ 2 , 3 , 2 ] [2],[3,2],[2,3,2] [2],[3,2],[2,3,2] 三种,显然 [ 2 , 3 , 2 ] [2,3,2] [2,3,2] 被重复统计了

    • 这里我们要采用左边找 < 2 <2 <2 的第一个数,右边找 ≤ 2 \leq2 2 的第一个数,此时第一个 2 2 2 作为最小值有 [ 2 ] , [ 2 , 3 ] [2],[2,3] [2],[2,3] 两种,第二个 2 2 2 作为最小值有 [ 2 ] , [ 3 , 2 ] , [ 2 , 3 , 2 ] [2],[3,2],[2,3,2] [2],[3,2],[2,3,2] 三种,如此就不会重复统计
    • 即只要一边允许等于 n u m s [ i ] nums[i] nums[i],另一边严格不等即可以保证不重复计算

代码如下

class Solution {long long minSubarraySum(vector<int>& nums, int k){int n = nums.size();vector<int> left(n, -1), right(n, n);stack<int> st;for(int i = 0; i < n; i++){while(st.size() && nums[st.top()] > nums[i]){right[st.top()] = i; // 右边允许相等st.pop();}if(st.size()) left[i] = st.top(); // 左边严格不等st.push(i);}long long ans = 0;for(int i = 0; i < n; i++){int L = left[i], R = right[i];long long s = 0;if(R - L - 1 <= k) s += 1LL*(R - i) * (i - L);else{L = max(L, i - k);R = min(R, i + k);// k - (i - L) + ... + R - iint m = R - i - (k - (i - L));s += 1LL * (R - i + k - (i - L - 1)) * m / 2;if(R - i < k){s += 1LL*(R - i) * (k - (R - i));}}ans += s * nums[i];}return ans;}
public:long long minMaxSubarraySum(vector<int>& nums, int k) {long long ans = minSubarraySum(nums, k);for(auto& x : nums) x = -x;return ans - minSubarraySum(nums, k);}
};

相关文章:

LeetCode --- 433周赛

题目列表 3427. 变长子数组求和 3428. 最多 K 个元素的子序列的最值之和 3429. 粉刷房子 IV 3430. 最多 K 个元素的子数组的最值之和 一、变长子数组求和 题意要求我们能快速算出 n u m s [ s t a r t . . . i ] nums[start...i] nums[start...i] 这段区间和&#xff0c;其中…...

LLM幻觉(Hallucination)缓解技术综述与展望

LLMs 中的幻觉问题&#xff08;LLM 幻觉&#xff1a;现象剖析、影响与应对策略&#xff09;对其可靠性与实用性构成了严重威胁。幻觉现象表现为模型生成的内容与事实严重不符&#xff0c;在医疗、金融、法律等对准确性要求极高的关键领域&#xff0c;可能引发误导性后果&#x…...

Rocky9.5编译freeswitch【记录】

文件目录 tree -dL 1 . ├── flite-2.0.0 ├── freeswitch ├── ldns-1.8.4 ├── libcodec2-2.59 ├── libks ├── ooh323-0.1 ├── opus ├── signalwire-client-c ├── sofia-sip ├── spandsp ├── v8-6.1.298 └── zeromq-2.1.9操作记录 ip a nm…...

自定义数据集 使用tensorflow框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测

在 TensorFlow 中实现逻辑回归、保存模型并加载模型进行预测的过程可以分为以下几个步骤&#xff1a; 准备数据&#xff1a;创建或加载你的自定义数据集。构建逻辑回归模型。训练模型。保存模型。加载模型。使用加载的模型进行预测。 import tensorflow as tf import numpy as…...

WPF进阶 | WPF 数据绑定进阶:绑定模式、转换器与验证

WPF进阶 | WPF 数据绑定进阶&#xff1a;绑定模式、转换器与验证 一、前言二、WPF 数据绑定基础回顾2.1 数据绑定的基本概念2.2 数据绑定的基本语法 三、绑定模式3.1 单向绑定&#xff08;One - Way Binding&#xff09;3.2 双向绑定&#xff08;Two - Way Binding&#xff09;…...

八股——Java基础(四)

目录 一、泛型 1. Java中的泛型是什么 ? 2. 使用泛型的好处是什么? 3. Java泛型的原理是什么 ? 什么是类型擦除 ? 4.什么是泛型中的限定通配符和非限定通配符 ? 5. List和List 之间有什么区别 ? 6. 可以把List传递给一个接受List参数的方法吗&#xff1f; 7. Arra…...

2025蓝桥杯JAVA编程题练习Day1

1.刑侦科推理试题 题目描述 有以下10道单选题&#xff0c;编程求这10道题的答案。 这道题的答案是&#xff1a; A. A B. B C. C D. D 第5题的答案是&#xff1a; A. C B. D C. A D. B 以下选项中哪一题的答案与其他三项不同&#xff1a; A. 第3题 B. 第6题 C. 第2题 D.…...

数据结构与算法-要点整理

知识导图: 一、数据结构 包含:线性表(数组、队列、链表、栈)、散列表、树(二叉树、多路查找树)、图 1.线性表 数据之间就是“一对一“的逻辑关系。 线性表存储数据的实现方案有两种,分别是顺序存储结构和链式存储结构。 包含:数组、队列、链表、栈。 1.1 数组…...

SaaS底层盈利逻辑剖析:运维费与服务费的战略抉择

一、引言 1.1 研究背景与意义 在数字化浪潮的推动下&#xff0c;SaaS&#xff08;软件即服务&#xff09;行业近年来取得了迅猛发展&#xff0c;成为软件产业中不可或缺的一部分。SaaS 通过互联网提供软件服务&#xff0c;企业无需进行复杂的本地软件安装和硬件购置&#xff…...

Python爬虫之——Cookie存储器

目录 专栏导读1、背景介绍2、库的安装3、核心代码4、完整代码总结 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Python处理办公问题&#xff0c;解放您的双手 &#x1f3f3;️‍&#x1f308; 博客主页&#xff1a;请点击——> 一晌小贪欢的博客主页求关注 &…...

【数据结构】(2)时间、空间复杂度

一、衡量算法好坏的指标 时间复杂度衡量算法的运行速度&#xff0c;空间复杂度衡量算法所需的额外空间。这些指标&#xff0c;是某场景中选择使用哪种数据结构和算法的依据。如今&#xff0c;计算机的存储器已经变得容易获得&#xff0c;所以不再太关注空间复杂度。 二、渐进表…...

理解 IS-IS 中重要概念之间的关系

本文为 “IS-IS 中重要概念” 相关文章合辑。 未整理去重。 理解 IS-IS、CLNS、CMNS、NSAP、NET 等概念之间的关系 1. 核心概念 IS-IS (Intermediate System to Intermediate System) 一种链路状态路由协议&#xff0c;基于 SPF&#xff08;最短路径优先&#xff09;算法计…...

AI 模型评估与质量控制:生成内容的评估与问题防护

在生成式 AI 应用中&#xff0c;模型生成的内容质量直接影响用户体验。然而&#xff0c;生成式模型存在一定风险&#xff0c;如幻觉&#xff08;Hallucination&#xff09;问题——生成不准确或完全虚构的内容。因此&#xff0c;在构建生成式 AI 应用时&#xff0c;模型评估与质…...

Mybatis-plus缓存

mybatis-plus缓存 MyBatis-Plus 是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上提供了更多的便利性和强大的功能&#xff0c;包括但不限于分页、条件构造器、通用 Mapper、代码生成器等。MyBatis-Plus 也内置了基础的缓存功能&#xff0c;但需要注意的是&#xff…...

unity学习20:time相关基础 Time.time 和 Time.deltaTime

目录 1 unity里的几种基本时间 1.1 time 相关测试脚本 1.2 游戏开始到现在所用的时间 Time.time 1.3 时间缩放值 Time.timeScale 1.4 固定时间间隔 Time.fixedDeltaTime 1.5 两次响应时间之间的间隔&#xff1a;Time.deltaTime 1.6 对应测试代码 1.7 需要关注的2个基本…...

系统思考—转型

“我知道自己有问题&#xff0c;但问题到底出在哪里&#xff1f;” 很多中小企业主都会在这样的迷茫中徘徊。市场变化太快、团队执行力不强、内部沟通不畅……这些问题似乎无处不在。但其实&#xff0c;真正让企业陷入困境的&#xff0c;并不是问题本身&#xff0c;而是——看…...

Java面试题2025-设计模式

1.说一下开发中需要遵守的设计原则&#xff1f; 设计模式中主要有六大设计原则&#xff0c;简称为SOLID &#xff0c;是由于各个原则的首字母简称合并的来(两个L算一个,solid 稳定的)&#xff0c;六大设计原则分别如下&#xff1a; 1、单一职责原则 单一职责原则的定义描述非…...

本地Harbor仓库搭建流程

Harbor仓库搭建流程 本文主要介绍如何搭建harbor仓库&#xff0c;推送本地镜像供其他机器拉取构建服务 harbor文档&#xff1a;Harbor 文档 | 配置 Harbor YML 文件 - Harbor 中文 github下载离线安装包 Releases goharbor/harbor 这是harbor的GitHub下载地址&#xff0c…...

爬虫基础之爬取某基金网站+数据分析

声明: 本案例仅供学习参考使用&#xff0c;任何不法的活动均与本作者无关 网站:天天基金网(1234567.com.cn) --首批独立基金销售机构-- 东方财富网旗下基金平台! 本案例所需要的模块: 1.requests 2.re(内置) 3.pandas 4.pyecharts 其他均需要 pip install 模块名 爬取步骤: …...

Qt调用FFmpeg库实时播放UDP组播视频流

基于以下参考链接&#xff0c;通过改进实现实时播放UDP组播视频流 https://blog.csdn.net/u012532263/article/details/102736700 源码在windows&#xff08;qt-opensource-windows-x86-5.12.9.exe&#xff09;、ubuntu20.04.6(x64)(qt-opensource-linux-x64-5.12.12.run)、以…...

YOLOv10改进,YOLOv10检测头融合DynamicHead,添加小目标检测层(四头检测)+CA注意机制,全网首发

摘要 作者提出一种新的检测头,称为“动态头”,旨在将尺度感知、空间感知和任务感知统一在一起。如果我们将骨干网络的输出(即检测头的输入)视为一个三维张量,其维度为级别 空间 通道,这样的统一检测头可以看作是一个注意力学习问题,直观的解决方案是对该张量进行全自…...

【ComfyUI专栏】推荐几个常用的云端ComfyUI平台

如果我们本身的系统资源不足&#xff0c;但是我们依然能够使用显卡来利用ComfyUI生成我们需要的图片或者视频。当前平台中主要有两个不同的廉价平台提供了ComfyUI的功能&#xff0c;这里提供的资源基本上都是基于分钟进行计算。这些平台的好处就是基本上不需要你额外进行配置。…...

std::pair源码:operator=被delete了,提供的是sfinae版本

D:\DevTools\VS2017\VC\Tools\MSVC\14.16.27023\include\utility pair& operator(const volatile pair&) delete;真正版本&#xff1a;template<class _Other1 _Ty1,class _Other2 _Ty2,enable_if_t<conjunction_v<is_assignable<_Ty1&, const _Oth…...

数据要素白皮书(2024年)(解读+全文阅读)

数据要素白皮书&#xff08;2024年&#xff09;》由中国通信标准化协会大数据技术标准推进委员会发布&#xff0c;版权受法律保护&#xff0c;转载需注明来源。该白皮书深入分析了当前数据要素在全球及中国的发展态势&#xff0c;并提出了关键观察与展望。 全球范围内&#xf…...

C#常用257单词

1、Visual Studio 直译&#xff1a;可视化开发环境 说明&#xff1a;简称VS&#xff0c;我们编写程序的集成开发环境&#xff0c;可以写代码、编译代码、调试代码、发布程序。 2、.Net 直译&#xff1a;dotNet 说明&#xff1a;我们常说的.net读作dotnet&#xff0c;表示网…...

禅道2024年度回顾:品牌向善,才能向上!

很高兴禅道顺利完成了2024年的跃升计划&#xff0c;并交出了一份认真的答卷&#xff01; 这一年&#xff0c;禅道的产品在变强&#xff0c;完成了产品的重构与全面升级&#xff1b; 这一年&#xff0c;禅道的朋友在变多&#xff0c;服务到更多不同行业的客户&#xff1b; 这…...

RK3568 adb使用

文章目录 一、adb介绍**ADB 主要功能****常用 ADB 命令****如何使用 ADB****总结** 二、Linux下载adb**方法 1&#xff1a;使用包管理器&#xff08;适用于 Ubuntu/Debian 系统&#xff09;****方法 2&#xff1a;通过 Snap 安装&#xff08;适用于支持 Snap 的系统&#xff09…...

koodo-reader-电脑跨平台现代阅读器[支持ebook等电子书,支持多种格式]

koodo-reader-电脑跨平台现代阅读器[支持ebook等电子书&#xff0c;支持多种格式] 链接&#xff1a;https://pan.xunlei.com/s/VOH_rDBEXIU8lg4aA6IztZ4PA1?pwdg724# 特色 支持阅读格式&#xff1a; EPUB (.epub) PDF (.pdf) Kindle (.azw3, .mobi, .azw) 纯文本 (.txt…...

03:Heap代码的分析

Heap代码的分析 1、内存对齐2、Heap_1.c文件代码分析3、Heap_2.c文件代码分析4、Heap_4.c文件代码分析5、Heap_5.c文件代码分析 1、内存对齐 内存对齐的作用是为了CPU更快的读取数据。对齐存储与不对齐存储的情况如下&#xff1a; 计算机读取内存中的数据时是一组一组的读取的…...

二分查找题目:寻找两个正序数组的中位数

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;寻找两个正序数组的中位数 出处&#xff1a;4. 寻找两个正序数组的中位数 难度 8 级 题目描述 要求 给定两个大…...

Java Web-Tomcat Servlet

Web服务器-Tomcat Web服务器简介 Web 服务器是一种软件程序&#xff0c;它主要用于在网络上接收和处理客户端&#xff08;如浏览器&#xff09;发送的 HTTP 请求&#xff0c;并返回相应的网页内容或数据。以下是关于 Web 服务器的详细介绍&#xff1a; 功能 接收请求&#…...

渗透测试-WAF是什么以及原理解释 waf功能详解

目录 waf功能介绍 waf出现的地点: 什么是waf 功能: 常见的系统攻击分为两类 一是利用Web服务器的漏洞进行攻击 二是利用网页自身的安全漏洞进行攻击 WAF主要功能&#xff1a; waf的特点1 waf主要功能2 网马木马主动防御及查杀 流量监控 网站漏洞防御功能 危险组件…...

Vue3 provide/inject用法总结

1. 基本概念 provide/inject 是 Vue3 中实现跨层级组件通信的方案&#xff0c;类似于 React 的 Context。它允许父组件向其所有子孙组件注入依赖&#xff0c;无论层级有多深。 1.1 基本语法 // 提供方&#xff08;父组件&#xff09; const value ref(hello) provide(key, …...

C# 提取PDF表单数据

目录 使用工具 C# 提取多个PDF表单域的数据 C# 提取特定PDF表单域的数据 PDF表单是一种常见的数据收集工具&#xff0c;广泛应用于调查问卷、业务合同等场景。凭借出色的跨平台兼容性和标准化特点&#xff0c;PDF表单在各行各业中得到了广泛应用。然而&#xff0c;当需要整合…...

【JAVA项目】基于ssm的【宠物医院信息管理系统】

【JAVA项目】基于ssm的【宠物医院信息管理系统】 技术简介&#xff1a;采用JSP技术、ssm框架、B/S架构、MySQL技术等实现。 系统简介&#xff1a;宠物医院信息管理系统&#xff0c;在系统首页可以查看首页、医学知识、医生信息、药品信息、新闻资讯、留言反馈、我的、跳转到后台…...

书生大模型实战营2

L0——入门岛 Python基础 Conda虚拟环境 虚拟环境是Python开发中不可或缺的一部分&#xff0c;它允许你在不同的项目中使用不同版本的库&#xff0c;避免依赖冲突。Conda是一个强大的包管理器和环境管理器。 创建新环境 首先&#xff0c;确保你已经安装了Anaconda或Minico…...

产业园管理系统提升企业综合管理效率与智能化水平的成功案例分析

内容概要 在当前科技迅猛发展的时代&#xff0c;越来越多的企业意识到数字化转型的重要性。为了提升管理效率和智能化水平&#xff0c;产业园管理系统应运而生&#xff0c;成为众多园区和商办写字楼不可或缺的一部分。无论是工业园、物流园还是公寓&#xff0c;这些系统都能为…...

《AI赋能光追:开启图形渲染新时代》

光线追踪技术是图形渲染领域的重大突破&#xff0c;能够通过模拟光的传播路径&#xff0c;精准渲染反射、折射、阴影和间接光照等效果&#xff0c;实现高度逼真的场景呈现。而人工智能的加入&#xff0c;更是为光线追踪技术带来了前所未有的变革&#xff0c;主要体现在以下几个…...

危机13小时:追踪一场GitHub投毒事件

事件概要 自北京时间 2024.12.4 晚间6点起&#xff0c; GitHub 上不断出现“幽灵仓库”&#xff0c;仓库中没有任何代码&#xff0c;只有诱导性的病毒文件。当天&#xff0c;他们成为了 GitHub 上 star 增速最快的仓库。超过 180 个虚假僵尸账户正在传播病毒&#xff0c;等待不…...

利用JSON数据类型优化关系型数据库设计

利用JSON数据类型优化关系型数据库设计 前言 在关系型数据库中&#xff0c;传统的结构化存储方式要求预先定义好所有的列及其数据类型。 然而&#xff0c;随着业务的发展&#xff0c;这种设计可能会显得不够灵活&#xff0c;尤其是在需要扩展单个列的描述功能时。 JSON数据…...

如何学习Java后端开发

文章目录 一、Java 语言基础二、数据库与持久层三、Web 开发基础四、主流框架与生态五、分布式与高并发六、运维与部署七、项目实战八、持续学习与提升总结路线图 学习 Java 后端开发需要系统性地掌握多个技术领域&#xff0c;从基础到进阶逐步深入。以下是一个详细的学习路线和…...

AI刷题-蛋糕工厂产能规划、优质章节的连续选择

挑两个简单的写写 目录 一、蛋糕工厂产能规划 问题描述 输入格式 输出格式 解题思路&#xff1a; 问题理解 数据结构选择 算法步骤 关键点 最终代码&#xff1a; 运行结果&#xff1a;​编辑 二、优质章节的连续选择 问题描述 输入格式 输出格式 解题思路&a…...

SpringBoot统一数据返回格式 统一异常处理

统一数据返回格式 & 统一异常处理 1. 统一数据返回格式1.1 快速入门1.2 存在问题1.3 案列代码修改1.4 优点 2. 统一异常处理 1. 统一数据返回格式 强制登录案例中,我们共做了两部分⼯作 通过Session来判断⽤⼾是否登录对后端返回数据进⾏封装,告知前端处理的结果 回顾 后…...

[MySQL]事务的理论、属性与常见操作

目录 一、事物的理论 1.什么是事务 2.事务的属性&#xff08;ACID&#xff09; 3.再谈事务的本质 4.为什么要有事务 二、事务的操作 1.事务的支持版本 2.事务的提交模式 介绍 自动提交模式 手动提交模式 3.事务的操作 4.事务的操作演示 验证事务的回滚 事务异常…...

JWT实现单点登录

文章目录 JWT实现单点登录JWT 简介存在问题及解决方案登录流程后端程序实现前端保存Tokenstore存放信息的缺点及解决 校验流程&#xff1a;为gateway增加登录校验拦截器 另一种单点登录方法&#xff1a;Token&#xff0b;Redis实现单点登录 JWT实现单点登录 登录流程&#xff…...

docker 学习笔记

一、docker容器快速上手以及简单操作 docker的image和container image镜像 docker image就是一个read.only文件&#xff0c;可以理解成一个模版&#xff0c;docker image具有分层的概念 可以自己制作&#xff0c;也可以从registry拉去 container容器 一个运行中的docker …...

Lesson 119 A true story

Lesson 119 A true story 词汇 story n. 故事&#xff0c;传记&#xff0c;小说&#xff0c;楼层storey 搭配&#xff1a;tell a story 讲故事&#xff0c;说谎    true story 真实的故事    the second floor 二楼 例句&#xff1a;我猜他正在说谎。    I guess he…...

c语言版贪吃蛇(Pro Max版)附源代码

1 背景 贪吃蛇是一款经典的电子游戏&#xff0c;最早出现在20世纪70年代的街机游戏中。游戏的核心玩法是玩家控制一条蛇在有限的空间内移动&#xff0c;通过吃食物来增长身体长度&#xff0c;同时避免撞到墙壁、障碍物或自身。随着蛇的长度增加&#xff0c;游戏难度逐渐提升。 …...

蓝桥村打花结的花纸选择问题

在这篇文章中&#xff0c;我们将探讨一个有趣的算法问题&#xff0c;这个问题涉及到中国传统手工艺——打花结。我们需要判断给定的矩形花纸是否可以通过折叠操作使其面积变为特定的值 X&#xff0c;从而适合用来打花结。 问题描述 解题思路 这个问题可以通过循环方法来解决。…...

SSM开发(三) spring与mybatis整合(含完整运行demo源码)

目录 本文主要内容 一、Spring整合MyBatis的三个关键点 二、整合步骤 1、创建一个Maven项目 2、在pom.xml文件中添加jar包的依赖 3、配置MyBatis 注解实现方式 XML配置文件实现 4、配置Spring 5、测试运行 本文主要内容 1. Spring + Mybatis整合; 2. MyBatis两种SQL…...