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

2024中国大学生算法设计超级联赛(1)

🚀欢迎来到本文🚀
🍉个人简介:陈童学哦,彩笔ACMer一枚。
🏀所属专栏:杭电多校集训
本文用于记录回顾总结解题思路便于加深理解。

📢📢📢传送门

  • A - 循环位移
    • 解题思路
    • AC代码
  • B - 星星
    • 解题思路
    • AC代码
  • H - 位运算
    • 解题思路
    • AC代码

A - 循环位移

ProblemDescription

定义字符串 S = S 0 + ⋯ + S n − 1 循环位移 k 次为 S ( k ) = S k m o d n + ⋯ + S n − 1 + S 0 + ⋯ + S ( k − 1 ) m o d n 。定义 [ A ] = A ( k ) , k ∈ N . 给出 T 组串 A , B ,询问 B 有多少个子串在 [ A ] 中。 定义字符串S=S0+⋯+Sn−1循环位移k次为S(k)=Skmodn+⋯+Sn−1+S0+⋯+S(k−1)modn。 定义[A]={A(k),k∈N}. 给出T组串A,B,询问B有多少个子串在[A]中。 定义字符串S=S0++Sn1循环位移k次为S(k)=Skmodn++Sn1+S0++S(k1)modn。定义[A]=A(k),kN.给出T组串A,B,询问B有多少个子串在[A]中。
在这里插入图片描述

Input

第一行一个 T 表示输入组数。接下来每行两个字符串,表示 A 和 B ,保证 ∣ A ∣ ≤ ∣ B ∣ 。保证 ∑ ∣ B ∣ ≤ 1048576. ,并且字符串均由大写字母组成。 第一行一个T表示输入组数。 接下来每行两个字符串,表示A和B,保证∣A∣≤∣B∣。保证∑∣B∣≤1048576.,并且字符串均由大写字母组成。 第一行一个T表示输入组数。接下来每行两个字符串,表示AB,保证A∣≤∣B。保证B∣≤1048576.,并且字符串均由大写字母组成。

在这里插入图片描述

Output

输出 T 行,每行一个数表示答案。 输出T行,每行一个数表示答案。 输出T行,每行一个数表示答案。

在这里插入图片描述

解题思路

题目要我们求字符串B中有多少个子串属于字符串A的循环位移串。
一般对于这种循环位移的东西,我们都可以去倍增一下会比较好写。
在这里我们可以将字符串A倍增一倍然后去字符串B中找有多少个长度为字符串A长度的字串然后通过字符串哈希统计答案。
首先我们可以计算一下倍增后的字符串A的每个字符的的哈希值,然后再将每个区间长度为原字符串A长度的字串的哈希值标记为1,最后再类似的处理字符串B的每个字符的哈希值,然后再判断字符串B中长度为原字符串A长度的哈希值是否被标记,如果被标记那么答案就++。
还需要注意的就是在此之前我们需要预处理一个数组f用于计算哈希值,以及区间哈希值如何计算。

AC代码

#include<bits/stdc++.h>
#define look(x) cout << #x << " ==  " << x << "\n"
using namespace std;
using i64 = long long;
const int N = 5e5 + 10;
const int MOD1 = 1e9 + 7;
const int MOD2 = 998244353;
//h1代表字符串A中字符的哈希值
//h2代表字符串B中字符的哈希值
i64 h1[N],h2[N];
//预处理的数组
i64 f[N];
//字符串A中区间哈希值的计算
i64 get1(int l,int r){return h1[r] - h1[l - 1] * f[r - l + 1];
}
//字符串B中哈希值的计算
i64 get2(int l,int r){return h2[r] - h2[l - 1] * f[r - l + 1];
}
void solve(){string s1,s2;cin >> s1 >> s2;int n1 = s1.size();int n2 = s2.size();s1 = '?' + s1 + s1;s2 = '?' + s2;//计算字符串A的每个字符的哈希值for(int i = 1;i < s1.size();i ++){h1[i] = h1[i - 1] * 11 + s1[i];}map<i64,int> mp;//标记A的每个循环位移串for(int i = 1;i < s1.size();i ++){if(i + n1 - 1 < s1.size()){mp[get1(i,i + n1 - 1)] = 1;}}//计算字符串B的每个字符的哈希值for(int i = 1;i < s2.size();i ++){h2[i] = h2[i - 1] * 11 + s2[i];}i64 ans = 0;//统计答案,被标记了就是答案,加1for(int i = 1;i < s2.size();i ++){if(i + n1 - 1 < s2.size()){ans += mp[get2(i,i + n1 - 1)];}}cout << ans << "\n";
}int main(){	ios::sync_with_stdio(false);cin.tie(nullptr);f[0] = 1;//预处理的数组ffor(int i = 1;i <= N;i ++){f[i] = f[i - 1] * 11;}int t = 1;cin >> t;while(t --){solve();}return 0;
}

B - 星星

ProblemDescription

小 A 有 n 次获得星星的机会。在第 i 次机会里他有如下的 5 种选择(他必须做出恰好一种选择): 小A有n次获得星星的机会。 在第i次机会里他有如下的5种选择(他必须做出恰好一种选择): An次获得星星的机会。在第i次机会里他有如下的5种选择(他必须做出恰好一种选择):
− 跳过这一轮。 -跳过这一轮。 跳过这一轮。
− a i 的代价获得 1 颗星星。 -ai的代价获得1颗星星。 ai的代价获得1颗星星。
− b i 的代价获得 2 颗星星。 -bi的代价获得2颗星星。 bi的代价获得2颗星星。
− c i 的代价获得 3 颗星星。 -ci的代价获得3颗星星。 ci的代价获得3颗星星。
− d i 的代价获得 4 颗星星。 -di的代价获得4颗星星。 di的代价获得4颗星星。
保证 0 < a i ≤ b i ≤ c i ≤ d i ≤ 1 0 9 。 保证0<a_i≤b_i≤c_i≤d_i≤10^9。 保证0<aibicidi109
他想要获得恰好 k 颗星星,但是并不知道最小代价是多少,请你帮他计算这个最小值。 他想要获得恰好k颗星星,但是并不知道最小代价是多少,请你帮他计算这个最小值。 他想要获得恰好k颗星星,但是并不知道最小代价是多少,请你帮他计算这个最小值。

在这里插入图片描述
Input

本题有多组数据 本题有多组数据 本题有多组数据
第一行输入数据组数 T 。 第一行输入数据组数T。 第一行输入数据组数T
对于每组数据的第一行,有两个正整数表示 n , k 。接下来 n 行,输入四个数字 a i , b i , c i , d i 。 对于每组数据的第一行,有两个正整数表示n,k。接下来n行,输入四个数字a_i,b_i,c_i,d_i。 对于每组数据的第一行,有两个正整数表示n,k。接下来n行,输入四个数字ai,bi,ci,di
1 ≤ n ≤ 1000 , 0 ≤ k ≤ n × 4. 1≤n≤1000,0≤k≤n×4. 1n1000,0kn×4.
满足 ∑ n ≤ 100000 满足∑n≤100000 满足n100000

在这里插入图片描述
Output

对于每组数据,输出一个数字表示这组数据的答案。 对于每组数据,输出一个数字表示这组数据的答案。 对于每组数据,输出一个数字表示这组数据的答案。

在这里插入图片描述

解题思路

n次获得星星中恰好获得k颗星星的最小代价,是不是有点和01背包的n件物品中背包容量恰好为v的最大价值有点类似。
对的,那么这题肯定大概率应该就是个变形版的01背包了。
那么就直接考虑dp, d p [ N ] dp[N] dp[N]代表的是获得星星为 N N N时所付出的最小代价。

AC代码

#include<bits/stdc++.h>
#define look(x) cout << #x << " ==  " << x << "\n"
using namespace std;
using i64 = long long;
const int N = 2e5 + 10;
const int MOD1 = 1e9 + 7;
const int MOD2 = 998244353;
//获得1、2、3、4颗星星时所需要付出的代价
int a[1010],b[1010],c[1010],d[1010];
//获得星星数为x时所需付出的最小代价
i64 dp[4040];
void solve(){//初始化为无穷大memset(dp,0x3f,sizeof(dp));//获得0颗星星时不需要付出代价dp[0] = 0;int n,k;cin >> n >> k;for(int i = 1;i <= n;i ++){cin >> a[i] >> b[i] >> c[i] >> d[i];}//第i次获得星星的机会for(int i = 1;i <= n;i ++){//目前获得的星星数for(int j = k;j >= 0;j --){//在获得1、2、3、4颗星星时依次转移for(int t = 1;t <= 4;t ++){if(j >= t){if(t == 1){dp[j] = min(dp[j],dp[j - t] + a[i]);}else if(t == 2){dp[j] = min(dp[j],dp[j - t] + b[i]);}else if(t == 3){dp[j] = min(dp[j],dp[j - t] + c[i]);}else if(t == 4){dp[j] = min(dp[j],dp[j - t] + d[i]);}}}}}//输出恰好获得k颗星星时的最小代价cout << dp[k] << "\n";
}int main(){	ios::sync_with_stdio(false);cin.tie(nullptr);int t = 1;cin >> t;while(t --){solve();}return 0;
}

H - 位运算

ProblemDescription

小丁最近对位运算很感兴趣,通过学习,他知道了按位与 ⊗ ,按位异或 ⊕ ,以及按位或 ⊖ 三种常见位运算。 小丁最近对位运算很感兴趣,通过学习,他知道了按位与⊗,按位异或⊕,以及按位或⊖三种常见位运算。 小丁最近对位运算很感兴趣,通过学习,他知道了按位与,按位异或,以及按位或三种常见位运算。
按位与 ⊗ :二进制下每一位做与,即 0 ⊗ 0 = 0 , 0 ⊗ 1 = 0 , 1 ⊗ 0 = 0 , 1 ⊗ 1 = 1 。 按位与⊗:二进制下每一位做与,即0⊗0=0,0⊗1=0,1⊗0=0,1⊗1=1。 按位与:二进制下每一位做与,即00=0,01=0,10=0,11=1
按位异或 ⊕ :二进制下每一位做异或,即 0 ⊕ 0 = 0 , 0 ⊕ 1 = 1 , 1 ⊕ 0 = 1 , 1 ⊕ 1 = 0 。 按位异或⊕:二进制下每一位做异或,即0⊕0=0,0⊕1=1,1⊕0=1,1⊕1=0。 按位异或:二进制下每一位做异或,即00=0,01=1,10=1,11=0
按位或 ⊖ :二进制下每一位做或,即 0 ⊖ 0 = 0 , 0 ⊖ 1 = 1 , 1 ⊖ 0 = 1 , 1 ⊖ 1 = 1 。 按位或⊖:二进制下每一位做或,即0⊖0=0,0⊖1=1,1⊖0=1,1⊖1=1。 按位或:二进制下每一位做或,即00=0,01=1,10=1,11=1
现在,对于一个在 [ 0 , 2 k ) 中的整数 n ,小丁想要知道,有多少组也在 [ 0 , 2 k ) 中的整数 a , b , c , d ,满足: 现在,对于一个在[0,2^k)中的整数n,小丁想要知道,有多少组也在[0,2^k)中的整数a,b,c,d,满足: 现在,对于一个在[0,2k)中的整数n,小丁想要知道,有多少组也在[0,2k)中的整数a,b,c,d,满足:

a ⊗ b ⊕ c ⊖ d = n a⊗b⊕c⊖d=n abcd=n
注意,运算符是从左往右依次顺序结合的,即可以认为原表达式为: 注意,运算符是从左往右依次顺序结合的,即可以认为原表达式为: 注意,运算符是从左往右依次顺序结合的,即可以认为原表达式为:
( ( ( a ⊗ b ) ⊕ c ) ⊖ d ) = n (((a⊗b)⊕c)⊖d)=n (((ab)c)d)=n

在这里插入图片描述
Input

本题单个测试点内包含多组测试数据。 本题单个测试点内包含多组测试数据。 本题单个测试点内包含多组测试数据。
第一行一个整数 T ( 1 ≤ T ≤ 10 ) ,表示数据组数。 第一行一个整数T(1≤T≤10),表示数据组数。 第一行一个整数T(1T10),表示数据组数。
对于每组数据,一行两个整数 n , k ( 1 ≤ k ≤ 15 , 0 ≤ n < 2 k ) 。 对于每组数据,一行两个整数n,k(1≤k≤15,0≤n<2^k)。 对于每组数据,一行两个整数n,k(1k15,0n<2k)

在这里插入图片描述

Output

对于每组数据输出 q 行,每行一个整数表示答案。 对于每组数据输出q行,每行一个整数表示答案。 对于每组数据输出q行,每行一个整数表示答案。

在这里插入图片描述

解题思路

对于这种位运算的题,绝大部分情况下直接枚举十进制下的数肯定会TLE的,一般都是找二进制下每位的规律。
要使得 ( ( ( a ⊗ b ) ⊕ c ) ⊖ d ) = n (((a⊗b)⊕c)⊖d)=n (((ab)c)d)=n,那么 a 、 b 、 c 、 d a、b、c、d abcd二进制的这位数字要么为1要么为0,如果它们当前位通过 ⊗ 、 ⊕ 、 ⊖ ⊗、⊕、⊖ 运算后的结果1,那么n的二进制下的当前位也应该位1,反之则为0。
那么我们便可以通过预处理 a 、 b 、 c 、 d a、b、c、d abcd四个数取1或0的所有情况,然后通过判断n的二进制下每位是1还是0累加答案即可。
或者我们可以通过分类讨论。
一、n的当前位在二进制下位1时
  1、当d的当前位为1时, ( ( a ⊗ b ) ⊕ c ) ((a⊗b)⊕c) ((ab)c)中的a、b、c无论如何取值都不会影响结果,所有共有 2 3 2^3 23即8。
  2、当d的当前位为0时,再分类讨论下 ( ( a ⊗ b ) ⊕ c ) ((a⊗b)⊕c) ((ab)c)为1还是0。
    ①、当c为1时, ( a ⊗ b ) (a⊗b) (ab)共有3种情况使得 ( ( ( a ⊗ b ) ⊕ c ) ⊖ d ) (((a⊗b)⊕c)⊖d) (((ab)c)d)为1
    ②、当c为0时, ( a ⊗ b ) (a⊗b) (ab)共有1种情况使得 ( ( ( a ⊗ b ) ⊕ c ) ⊖ d ) (((a⊗b)⊕c)⊖d) (((ab)c)d)为1
综上所述共有12种情况使得进制位为1。

二、n的当前位在二进制下位0时
  1、当d的当前位为1时, ( ( a ⊗ b ) ⊕ c ) ((a⊗b)⊕c) ((ab)c)中的a、b、c无论如何取值无法使得 ( ( a ⊗ b ) ⊕ c ) ((a⊗b)⊕c) ((ab)c)满足条件,即0种情况。
  2、当d的当前位为0时,再分类讨论下 ( ( a ⊗ b ) ⊕ c ) ((a⊗b)⊕c) ((ab)c)为1还是0。
    ①、当c为1时, ( a ⊗ b ) (a⊗b) (ab)共有1种情况使得 ( ( ( a ⊗ b ) ⊕ c ) ⊖ d ) (((a⊗b)⊕c)⊖d) (((ab)c)d)为0
    ②、当c为0时, ( a ⊗ b ) (a⊗b) (ab)共有3种情况使得 ( ( ( a ⊗ b ) ⊕ c ) ⊖ d ) (((a⊗b)⊕c)⊖d) (((ab)c)d)为0
综上所述共有12种情况使得进制位为4。

最后总结也就能看出来如果n二进制下的当前位为1的话就 ∗ 12 *12 12,否则 ∗ 4 *4 4

AC代码

#include<bits/stdc++.h>
#define look(x) cout << #x << " ==  " << x << "\n"
using namespace std;
using i64 = long long;
const int N = 2e5 + 10;
const int MOD1 = 1e9 + 7;
const int MOD2 = 998244353;
void solve(){int n,k;cin >> n >> k;i64 ans = 1;for(int i = 0;i < k;i ++){if((n >> i) & 1){ans *= 12;}else{ans *= 4;}}cout << ans << "\n";
}int main(){	ios::sync_with_stdio(false);cin.tie(nullptr);int t = 1;cin >> t;while(t --){solve();}return 0;
}

相关文章:

2024中国大学生算法设计超级联赛(1)

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;彩笔ACMer一枚。 &#x1f3c0;所属专栏&#xff1a;杭电多校集训 本文用于记录回顾总结解题思路便于加深理解。 &#x1f4e2;&#x1f4e2;&#x1f4e2;传送门 A - 循环位移解…...

offer题目51:数组中的逆序对

题目描述&#xff1a;在数组中的两个数字&#xff0c;如果前面一个数字大于后面的数字&#xff0c;则这两个数字组成一个逆序对。输入一个数组&#xff0c;求出这个数组中的逆序对的总数。例如&#xff0c;在数组{7,5,6,4}中&#xff0c;一共存在5个逆序对&#xff0c;分别是(7…...

45、PHP 实现滑动窗口的最大值

题目&#xff1a; PHP 实现滑动窗口的最大值 描述&#xff1a; 给定一个数组和滑动窗口的大小&#xff0c;找出所有滑动窗口里数值的最大值。 例如&#xff1a; 如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3&#xff0c; 那么一共存在6个滑动窗口&#xff0c; 他们的最大值…...

【计算机视觉】siamfc论文复现实现目标追踪

什么是目标跟踪 使用视频序列第一帧的图像(包括bounding box的位置)&#xff0c;来找出目标出现在后序帧位置的一种方法。 什么是孪生网络结构 孪生网络结构其思想是将一个训练样本(已知类别)和一个测试样本(未知类别)输入到两个CNN(这两个CNN往往是权值共享的)中&#xff0…...

数学建模学习(111):改进遗传算法(引入模拟退火、轮盘赌和网格搜索)求解JSP问题

文章目录 一、车间调度问题1.1目前处理方法1.2简单案例 二、基于改进遗传算法求解车间调度2.1车间调度背景介绍2.2遗传算法介绍2.2.1基本流程2.2.2遗传算法的基本操作和公式2.2.3遗传算法的优势2.2.4遗传算法的不足 2.3讲解本文思路及代码2.4算法执行结果&#xff1a; 三、本文…...

Golang | Leetcode Golang题解之第241题为运算表达式设计优先级

题目&#xff1a; 题解&#xff1a; const addition, subtraction, multiplication -1, -2, -3func diffWaysToCompute(expression string) []int {ops : []int{}for i, n : 0, len(expression); i < n; {if unicode.IsDigit(rune(expression[i])) {x : 0for ; i < n &…...

Unity客户端接入原生Google支付

Unity客户端接入原生Google支付 1. Google后台配置2. 开始接入Java部分C#部分Lua部分 3. 导出工程打包测试参考踩坑注意 1. Google后台配置 找到内部测试&#xff08;这个测试轨道过审最快&#xff09;&#xff0c;打包上传&#xff0c;这个包不需要接入支付&#xff0c;如果已…...

Spring Cloud之五大组件

Spring Cloud 是一系列框架的有序集合&#xff0c;为开发者提供了快速构建分布式系统的工具。这些组件可以帮助开发者做服务发现&#xff0c;配置管理&#xff0c;负载均衡&#xff0c;断路器&#xff0c;智能路由&#xff0c;微代理&#xff0c;控制总线等。以下是 Spring Cl…...

在 CentOS 7 上安装 Docker 并安装和部署 .NET Core 3.1

1. 安装 Docker 步骤 1.1&#xff1a;更新包索引并安装依赖包 先安装yum的扩展&#xff0c;yum-utils提供了一些额外的工具&#xff0c;这些工具可以执行比基本yum命令更复杂的任务 sudo yum install -y yum-utils sudo yum update -y #更新系统上已安装的所有软件包到最新…...

redis的学习(一):下载安装启动连接

简介 redis的下载&#xff0c;安装&#xff0c;启动&#xff0c;连接使用 nosql nosql&#xff0c;即非关系型数据库&#xff0c;和传统的关系型数据库的对比&#xff1a; sqlnosql数据结构结构化非结构化数据关联关联的非关联的查询方式sql查询非sql查询事务特性acidbase存…...

前端设计模式面试题汇总

面试题 1. 简述对网站重构的理解&#xff1f; 参考回答&#xff1a; 网站重构&#xff1a;在不改变外部行为的前提下&#xff0c;简化结构、添加可读性&#xff0c;而在网站前端保持一致的行为。也就是说是在不改变UI的情况下&#xff0c;对网站进行优化&#xff0c; 在扩展的…...

linux(CentOS、Ubuntu)安装python3.12.2环境

1.下载官网Python安装包 wget https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tar.xz 1.1解压 tar -xf Python-3.12.2.tar.xz 解压完后切换到Python-3.12.2文件夹(这里根据自己解压的文件夹路径) cd /usr/packages/Python-3.12.2/ 1.2升级软件包管理器 CentOS系…...

CSS 中border-radius 属性

border-radius 属性在 CSS 中用于创建圆角边框。它可以接受一到四个值&#xff0c;这些值可以是长度值&#xff08;如像素 px、em 等&#xff09;或百分比&#xff08;%&#xff09;。当提供四个值时&#xff0c;它们分别对应于边框的左上角、右上角、右下角和左下角的圆角半径…...

【大数据专题】数据仓库

1. 简述数据仓库架构 &#xff1f; 数据仓库的核心功能从源系统抽取数据&#xff0c;通过清洗、转换、标准化&#xff0c;将数据加载到BI平台&#xff0c;进而满足业 务用户的数据分析和决策支持。 数据仓库架构包含三个部分&#xff1a;数据架构、应用程序架构、底层设施 1&…...

go关于string与[]byte再学深一点

目标&#xff1a;充分理解string与[]bytes零拷贝转换的实现 先回顾下string与[]byte的基本知识 1. string与[]byte的数据结构 reflect包中关于字符串的数据结构 // StringHeader is the runtime representation of a string.type StringHeader struct {Data uintptrLen int} …...

Qt 实战(7)元对象系统 | 7.4、属性系统:深度解析与应用

文章目录 一、属性系统&#xff1a;深度解析与应用1、定义属性2、属性系统的作用3、属性系统工作原理&#xff08;1&#xff09;Q_PROPERTY宏&#xff08;2&#xff09;moc 的作用&#xff08;3&#xff09;属性在元对象中的注册 4、获取与设置属性4.1、QObject::property()与Q…...

Docker核心技术:容器技术要解决哪些问题

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 Docker核心技术 系列文章&#xff1a;容器技术要解决哪些问题&#xff0c;其他文章快捷链接如下&#xff1a; 应用架构演进容器技术要解决哪些问题&#xff08;本文&#xff09;Docker的基本使用Docker是如何实…...

sklearn中的增量学习:特征提取的艺术

sklearn中的增量学习&#xff1a;特征提取的艺术 在机器学习领域&#xff0c;特征提取是构建有效模型的关键步骤。然而&#xff0c;并非所有数据集都适合一次性加载到内存中进行处理&#xff0c;尤其是在处理大规模数据集时。Scikit-learn&#xff08;sklearn&#xff09;提供…...

PostgreSQL 中如何处理数据的唯一性约束?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 中如何处理数据的唯一性约束&#xff1f;一、什么是唯一性约束二、为什么要设置唯一性约束…...

VAE论文阅读

在网上看到的VAE解释&#xff0c;发现有两种版本&#xff1a; 按照原来论文中的公式纯数学推导&#xff0c;一般都是了解生成问题的人写的&#xff0c;对小白很不友好。按照实操版本的&#xff0c;非常简单易懂&#xff0c;比如苏神的。但是却忽略了论文中的公式推导&#xff…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...