python 基础知识点(蓝桥杯python科目个人复习计划53)

今日复习内容:做题

例题1:最大的卡牌价值

问题描述:

给定n副卡牌,每张卡牌具有正反面,正面朝上数字为ai,背面朝上数字为bi。一副卡牌的价值为正面朝上数字之和,一开始所有卡牌都是正面朝上的。小蓝是蓝桥学院最优秀的魔法师,他知道所有卡牌的背面数字bi,他最多可以进行k次 操作,每次可以将一副卡牌翻转,将正面朝上的数字变为背面朝上的数字,或者将背面朝上的数字变为正面朝上的数字。请问,小蓝最多可以使卡牌的价值之和为多少?

输入格式:

第一行输入两个整数n和k,表示卡牌的数量和小蓝可以操作的次数

第二行输入n个整数ai,表示所有卡牌正面的数字

第三行输入n个整数bi,表示所有卡牌背面的数字

数据范围保证:1 <= n <= 1 * 10^5,1 <= ai,bi,k <= 10^9

输出格式:

输出一个整数,表示可以得到的卡牌的最大价值和

参考答案:

n,k = map(int,input().split())
a = list(map(int,input().split()))
b = list(map(int,input().split()))
cha = [b[i] - a[i] for i in range(n)]
cha.sort(reverse = True)
tot = sum(a)
for i in range(k):if cha[i] < 0:breaktot += cha[i]
print(tot)

运行结果:

以下是我对此题的理解:

这道题的思路比较简单,主要是贪心地选择每次操作翻转能够增加价值的卡牌

1.思路解析

首先,我们需要明确每张卡牌的价值。每张卡牌的价值是正面朝上的数字ai;

接下来,我们需要考虑如何进行操作,以使得卡牌的总价值最大化。由于每次操作可以将一副卡牌翻转,我们可以选择将价值更高的一面朝上;

因此,我们可以计算每张卡牌正反面数字的差值bi - ai,然后将这些差值按照从小到大的顺序排列。这样排列后,我们就可以优先选择能够增加总价值的卡牌进行翻牌操作;

最后,我们通过对差值数组进行遍历,每次选择差值大于等于0的前k个差值进行操作,将它们加到总价值中,得到最终的最大价值。

2.代码解析

首先,读取输入的卡牌数量n,操作次数k,以及每张卡牌正面和背面的数字数组a和b;

计算每张卡牌正反面数字的差值,并将差值数组cha按照从大到小的顺序排序;

初始化总价值tot为所有卡牌正面数字之和;

对差值数组进行遍历,每次选择差值大于等于0的前k个差值进行操作,并将它们加到总价值中。

输出最终的总价值。

3.复杂度分析

时间复杂度:排序差值数组的时间复杂度为O(nlog n),遍历差值数组的时间复杂度是O(n),因此时间总复杂度为O(nlog n)。

空间复杂度:除了输入数据所占的空间外,额外使用了大小为O(n)的差值数组和一些额外的变量,因此空间复杂度也为O(n)。


例题2:珠宝的最大交替和

问题描述:

小莉是一位珠宝设计师,她非常喜欢玩珠子。她有一个长度为N的珠串A,每个珠子有不同的颜色和大小,她想要用这个珠串来设计一款新的珠宝。

她将该珠串的交替和定义为:

S = |A1| - |A2| + |A3| - |A4| + ... + (-1)^(N - 1)|AN|

小莉可以进行以下操作,但最多只能进行一次:

选择两个位置i和j(1 <= i <= j <= N),交换Ai和Aj。

为了让新的珠宝更加漂亮,小莉想要让交替和最大。请你帮她找出最大的交替和。

其中,|X|表示珠子X的大小的绝对值。

输入格式:

第一行包含一个整数N,表示珠串A的长度。

第二行包含N个用空格分开的整数,表示珠串A中每个珠子的大小。

数据范围保证:1 <= N <= 10^5,-10^9 <= Ai <= 10^9

输出格式:

输出一行,表示小莉最多可以通过进行操作获得的最大交替和。

参考答案:

n = int(input())
li = list(map(int,input().split()))
add = []
sub = []
for i in range(n):if i % 2 == 0:add.append(abs(li[i]))else:sub.append(abs(li[i]))
if n == 1:print(add[0])
else:tot = sum(add) - sum(sub)if max(sub) > min(add):tot += 2 * max(sub) - 2 * (min(add))print(tot)

运行结果:

 

以下是我对此题的理解:

首先,我们要明确交替和的定义;

接下来,我们需要考虑如何通过交替珠子的位置,使得交替和最大化。因为只能进行一次操作,我们需要找到一种合适的策略,使得在交换后交替 和能增加尽量多的值。

因此,我们首先将珠串中相邻的珠子按照奇偶性分成两组,分别计算两组中珠子的大小的绝对值之和。然后,我们需要比较两组珠子的大小,选择一种合适的交换策略,使得交替和最大。

接下来是代码:

首先,读取输入的珠串长度N和珠子大小的列表li;

将珠串中相邻的 珠子按照奇偶性分成两组,分别储存在列表add和sub中,其中add储存的是偶数位置珠子大小的绝对值,sub储存的是奇数位置珠子大小的绝对值;

如果珠串长度为1,则交替和就是该珠子大小的绝对值,直接输出;

否则,计算交替和的初始值为tot = sum(sub) - sum(sub)

如果最大的奇数位置的珠子大小的绝对值大于最小的偶数位置的珠子大小的绝对值,说明交换后交替和会增加。

因此,我们选择最大的奇数位置珠子和最小的偶数位置珠子,计算交换后交替和增加的值,并将其加到tot中。

输出最终的交替和。

tot += 2 * max(sub) - 2 * max(add),这里乘以2是因为交换后有两个珠子的大小发生变化,分别是奇数位置上的最大值和偶数位置上的最小值。


例题3:小蓝的礼物

问题描述:

小蓝想要给他的女朋友小桥买一份生日礼物,她来到了一家礼品店,在店里,她看重了N件物品,每件物品都要一个价格Ai。

小蓝手中有K元钱一张50%的折扣券,可以在购买任意一件物品时使用。使用折扣券后,购买该物品的价格为原来价格的一半向上取整。

对于一件价值为X的物品,当小蓝使用折扣券后,她只需要花费[x / 2]的钱就能带走该商品。

请你帮助小蓝确定,在使用折扣券的情况下,她最多能够购买多少件物品送给小桥当作生日礼物。

输入格式:

第一行是两个整数N和K,分别表示物品的数量和小蓝手中的预算。

接下来一行是N个整数,表示每个物品的价格Ai。

数据范围保证:1 <= N <= 10^5,1 <= Ai <= 10^9,0 <= K <= 10^9

输出格式:

输出一个整数,表示在使用折扣券的情况下,小蓝最多可以购买多少件物品作为生日礼物。

参考答案:

import math
n,k = map(int,input().split())
li = list(map(int,input().split()))
li.sort()
ans = 0
for i in range(n):if k >= li[i]:ans += 1k -= li[i]else:if k >= math.ceil(li[i] / 2):ans += 1break
print(ans)

运行结果:

 

以下是我对此题的理解:

这道题的逻辑如下:

首先,读取输入的物品数量和小蓝手中的预算;

接着,读取每件物品的价格,并将它们储存在列表li中;

对物品价格列表li进行排序,从小到大排序,这样可以方便后续处理;

初始化变量ans为0,用来记录小蓝最多能够购买的物品数量;

使用一个循环遍历所有的物品:

如果小蓝的预算k大于等于当前物品的价格,说明她可以购买该物品,并将购买物品数量加一,同时更新她的预算k,即减去已购物品的价格

否则,如果小蓝的预算k大于等于该物品的价格一半的向上取整,则说明她可以使用折扣,购买数量ans加一,并且由于使用了折扣券,购买后预算要减去相应价格。

如果以上两种情况都不满足,则说明她不能买任何物品,直接跳出循环

最后输出小蓝最多能够购买的物品数量ans。


例题4:鸡哥的购物挑战

问题描述:

鸡哥在“无尽的夏日”购物节上看重了一系列的商品,这些商品的价格各不相同。然而,鸡哥的购物车有一条特殊的规则:购物车里的商品数量必须是偶数。

鸡哥希望在满足购物车前提的条件下,选择总价值最高的商品,他将商品的价格表给了你,希望你能帮他计算出他能购买到的商品的最高总价值是多少。

输入格式:

第一行包含一个整数N(2 <= N <= 10^5),表示商品的数量。

第二行包含N个整数,表示每个商品的价格Ai(-10^9 <= Ai <= 10^9)

输出格式:

输出一行,表示鸡哥能够买到的商品的最高总价值。

参考答案:

from bisect import *
n = int(input())
li = list(map(int,input().split()))
li.sort()
ind = bisect_left(li,0)
tot = sum(li[ind:])
if (n - ind) % 2 != 0:if ind:tot -= min(abs(li[ind]),abs(li[ind - 1]))else:tot -= li[0]
print(tot)

运行结果:

 

以下是我对此题的理解:

思路如下:

首先读入商品的数量n和每个商品的价格列表li;

将商品价格列表li进行排序,这样可以方便后续处理;

使用bisect_left函数在有序列表中查找0的插入点,这样可以确定商品价格为非负数的商品的起始位置,因为在购买商品时,我更倾向于选择价格为非负数的物品,这样可以使总价格更高;

计算起始位置之后的商品价格的总价值tot,这些商品的价格都是非负数;

如果起始位置之后的商品数量为奇数个,需要考虑一种情况:如果有负数的商品,我们希望可能将正数的商品价格和负数的商品价格想抵消,以保证总价值最高。因此,我们选择绝对值较小的负数商品和与其相邻的非负数商品进行抵消,从而得到最高总价值。

输出最高总价值tot。

if (n - ind) % 2 != 0:

这段代码首先判断(n - ind) % 2是否等于0,即判断起始位置之后的商品是否为奇数个。如果条件成立,说明商品数量是奇数个,需要进行抵消操作。

tot -= min(abs(li[ind]),abs(li[i - 1)):

这是抵消操作,如果存在负数的商品,我们希望尽可能将负数的商品价格与正数的商品价格进行抵消,以保证总价值最高。因此,选择绝对值较小的商品与其相邻的非负数商品进行抵消,使用min函数选择绝对值较小的负数商品,然后将其从总价值tot中减去,以实现抵消效果。

else:

如果起始位置是0,即不存在负数的商品,那么执行以下操作:这种情况下,我们直接将列表中第一个非负数商品加到tot上,因为不存在负数商品需要抵消,直接将第一个非负数商品的价格加到总价值中就行。

综上所述,难一点的操作就是商品数量为奇数时,进行合理的抵消操作,以保证购物车内商品数量为偶数个,并且保证总价值最高。


例题5:神奇是数组

问题描述:

欢迎来到异或王国,这是一个特殊的 王国,对于一个数组,它的价值并非所有数相加,而是所有数异或得到的值。

当然对于某些神奇的数组来说值可能是一样的,给定一个长度为n的数组a,请问有多少个子数组属于神奇数组。

换句话说,在数组a中,存在多少对下标l和r(1 <= l <= r <= n)满足:

输入格式:

第一行输入一个整数n,表示数组a的长度;

第二行输入n个整数,表示数组a的值。

数据保证:1 <= n <= 2 * 10^5,0 <= ai <= 2^20

输出格式:

输出一个整数,表示答案

参考答案:

n = int(input())
li = list(map(int,input().split()))
add = [0]
yh = [0]
for i in range(n):add.append(add[-1] + li[i])yh.append(yh[-1] ^ li[i])
l,r = 1,1
ans = 0
while l <= n and r <= n:while l <= n and r <= n and (add[r] - add[l - 1]) == (yh[r] ^ yh[l - 1]):ans += (r - l + 1)r += 1l += 1
print(ans)

运行结果:

 

以下是我对此题的理解:

主要思路如下:

首先,读取输入的数组长度n和数组a;

初始化两个辅助数组add和yh,分别用来记录前缀和与前缀异或值。这两个数组的目的是为了快速计算子数组的异或值。

add数组记录了数组a的前缀和,即前i个元素的和;

yh数组记录了数组a的前缀异或值,即前i个元素的异或结果。

使用两个指针l和r,分别表示子数组的左右边界,初始时都指向数组的第一个元素

初始化变量ans为0,用来记录符合条件的子数组数量。

进入循环,遍历所有可能的子数组:

在内层循环中,不断移动右边界r,同时检查当前子数组是否满足条件,即该数组的前缀和与前缀异或值是否相等;

然后移动左边界l,继续检查下一个子数组

最后输出符合条件的子数组数量ans。

关键在于利用前缀和与前缀异或值的性质,通过快速计算子数组的异或值,从而高效地判断子数组是否属于神奇数组。


例题6:聪明的小羊肖恩

问题描述:

小羊肖恩是一只非常聪明的绵羊,在牧场里与其他绵羊一起生活。有一天,它在草地上漫步时,发现了一些数字。它猜想这些数字可能在某些方面有用,于是把它们带回了牧场,并开始研究它们。

具体来说,小羊有一个长度为n的数组,第i个数字的值为ai,小羊肖恩心中想了两个数L和R,它想知道有多少对下标对(i,j)满足以下条件:

1 <= i <= j < n,L <= ai + aj <= R

请你帮他找出满足条件的下标对数量。

输入格式:

第一行输入3个整数n,L,R

第二行输入n个整数a1,a2,...,an,表示数组a。

数据范围保证:1 <= n <= 2 * 10^5,1 <= ai <= 10^9,1 <= L <= R <= 10^9

输出格式:

输出一个整数,表示满足条件的下标对数量。

参考答案:

def cul(aa,Z):ans = 0l = 0r = len(aa) - 1while l < r:if aa[l] + aa[r] <= Z:ans += r - ll += 1else:r -= 1return ans
n,L,R = map(int,input().split())
aa = list(map(int,input().split()))
aa.sort()
print(cul(aa,R) - cul(aa,L - 1))

运行结果:

 

以下是我对此题的理解:

主要思路:

首先,定义一个名为cul的函数,用于计算满足条件的下标对数量。函数接受两个参数aa和Z;

在函数内部,初始化变量ans为0,用于记录满足条件的下标对数量;

定义两个指针l和r,分别指向aa的两端;

进入循环,不断移动指针l和r,直到l不小于r为止:

如果数组中l和r指向的元素之和小于等于目标值Z,则将满足条件的下标对数量累加到ans中,并将l向右移动一位;否则,将r向左移动一位。

循环结束后,返回ans作为答案;

在主程序中,首先读取输入的数组长度n,以及范围L和R;

接着读取输入的数组a,并将其排序;

调用cul函数两次,分别传入排序后的数组aa和范围R及L - 1的值,然后将两次调用的结果相减,得出结果。


例题7:冒险者公会

问题描述:

一个地区包含n个村庄,每个村庄发布了一些委托任务,需要冒险者的帮助。

冒险者公会共有m位冒险者,某位冒险者具有能力值xi,这表示他能够完成难度值小于等于x的委托任务。每位冒险者最多只能出击一轮,在这一轮中,他们可以不重复地通过若干个村庄。

当一名冒险者路过一个村庄时,他最多只能完成该村庄的一个委托任务,且这个委托任务的难度不能超过冒险者的能力值。冒险者也可以选择在路过一些村庄时不完成任何委托任务。同样地,每个委托任务只能被完成一次。

无论冒险者完成多少任务,这名冒险者出击一轮的代价都等同于冒险者的能力值。

现在的目标是确定一种冒险者的出勤方案,以使得完成所有村庄的委托任务的总代价最小。

输入格式:

第一行输入两个整数m和n,分别表示冒险者的数量和村庄的数量, 0 < m,n <= 10^3。

第二行m个整数x1,x2,...,xm,代表每位冒险者的能力值, 0 < xi <= 10^3。

接下来n行,每行代表一个村庄,每行第一个整数k表示村庄的委托任务数量,此后k个不大于10^3的正整数表示该村庄的每个委托任务的难度值,0 < k <= 10^3。

输出格式:

在一行中输出一个整数,表示完成所有委托所需的最小总代价。如果不能完成所有的委托,则直接输出-1。

参考答案:

m,n = map(int,input().split())
chan = list(map(int,input().split()))
chan.sort()
flag = True
country = []
for i in range(n):tmpp = list(map(int,input().split()))k = tmpp[0]tmp = tmpp[1:]if k > m:flag = Falsebreaktmp.sort()tmp = [0] * (m - k) + tmpcountry.append(tmp)
if flag:max_ = []for j in range(m):max_.append(0)for i in range(n):max_[j] = max(max_[j],country[i][j])round_ = 0peo = 0while round_ < m and max_[round_] == 0:round_ += 1ans = 0while round_ < m and peo < m:if max_[round_] <= chan[peo]:ans += chan[peo]round_ += 1peo += 1if round_ == m:print(ans)else:print(-1)
else:print(-1)

运行结果:

这个题是我今天做的题中最难的。

以下是我对此题的理解:

首先,读取输入的冒险者m和村庄数量n;

读取每位冒险者的能力值,并将其排序;

初始化一个布尔变量flag为True,用于标记是否存在有效的出勤方案;

使用一个列表country来存储每个村庄的委托任务难度值,同时检查每个村庄的任务数量是否超过冒险者的数量;

如果存在有效方案,将每个村庄的任务难度值排序,并在前面补0,使得列表长度为m;

初始化一个列表max_用于记录每个冒险者在所有村庄中能够完成的最难任务难度;

初始化变量round_为0,用于表示当前轮次;

初始化变量peo为0,用于表示当前选择的冒险者;

进入两层循环,外层循环是轮次,内层循环是冒险者的选择。

在内层循环中,检查当前轮次下,冒险者是否能够完成任务。如果能完成,则累加代价并移动到下一轮次和下一位冒险者。如果某轮次无法完成任务,输出-1表示不存在有效的出勤方案。

如果能够完成所有村庄的任务,输出最小的总代价。否则,输出-1表示不存在有效的出勤方案。


这个题我做的时候就不是很熟练,所以得多记点笔记。

m,n = map(int,input().split())

这一行代码用来读取输入的两个整数,分别表示冒险者的数量和村庄的数量;

chan = list(map(int,input().split()))

chan.sort()

这一行代码读取每个冒险者的能力值,并将其存储在列表chan中,然后对该列表进行排序;

flag = True

country = []

这行代码初始化一个布尔变量flag为True,用于标记是否存在有效的出勤方案,并初始化一个空列表country,用于存储每个村庄的任务难度值。

for i in range(n):

tmpp = list(map(int,input().split()))

k = tmpp[0]

tmp = tmpp[1:]

if k > m:

flag = False

break

tmp.sort()

tmp = [0] * (m - k) + tmp

country.append(tmp)

这个循环用于读取每个村庄的任务信息。首先,读取一个列表tmpp,其中第一个元素k表示该村庄的任务数量,剩下的元素表示每个人物的难度值。如果任务数量k超过了冒险者的数量m,则将flag设为False,表示不存在有效的出勤方案。然后,对人物难度进行排序,并在前面补0使得列表长度为冒险者数量m,然后将其添加到country列表中。

if flag:

max_ = []

for j in range(m):

max_.append(0)

如果存在有效的出勤方案,就创建一个长度为冒险者数量的列表max_,用于记录每个冒险者在所有村庄中能够完成的最难任务难度。

for i in range(n):

max_[j] = max(max_[j],country[i][j])

这个循环用于更新max_列表中每个位置的值,使其表示每个冒险者在所有村庄中能够完成的最难任务难度。

round = 0

peo = 0

初始化变量round为当前轮次,peo表示当前选择的冒险者

while round_ < m and max_[round_] == 0:

round_ += 1

这个循环用于跳过一些没有任务的轮次

ans = 0

while round_ < m and peo < m:

if max_[round_] <= chan[peo]:

ans += chan[peo]

round_ += 1

peo += 1

这个循环用于在每个轮次中选择能够完成冒险任务的冒险者,并累计其能力值作为总价值

if round_ == m:

print(ans)

else:

print(-1)

如果能够完成所有村庄的任务,则输出最小的总代价,否则输出-1表示不存在有效的出勤方案。


OK,这就是我今天的学习成果。

这篇就到此为止了,下一篇继续!

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【已解决】用ArcGIS处理过的数据在QGIS中打开发生偏移怎么办?| 数据在ArcGIS中打开位置正常,在QGIS中偏移

1. 问题描述 栅格或者矢量数据用ArcGIS打开时位置正确&#xff08;可以和其他数据对应上&#xff09;。但是用QGIS打开后发现位置不对 2. 问题的原因 因为该数据用了ArcGIS自定义的坐标系&#xff0c;QGIS不支持&#xff0c;识别有误。因此在数据QGIS中的坐标系参数有误&a…

HTTP 的 multipart 类型

上一篇文章讲到 http 的 MIME 类型 http MIME 类型 里有一个 multipart 多部分对象集合类型&#xff0c;这个类型 http 指南里有讲到&#xff1a;MIME 中的 multipart&#xff08;多部分&#xff09;电子邮件报文中包含多个报文&#xff0c;它们合在一起作为单一的复杂报文发送…

【生态适配】亚信安慧AntDB数据库与FT-2000+/64处理器完成兼容互认

日前&#xff0c;亚信安慧AntDB数据库完成了与FT-2000/64处理器的兼容互认。经湖南亚信安慧科技有限公司&#xff08;简称“亚信安慧”&#xff09;与飞腾信息技术有限公司&#xff08;简称“飞腾公司”&#xff09;的严格测试&#xff0c;亚信安慧AntDB数据库V6.2在FT-2000/64…

《大模型时代-ChatGPT开启通用人工智能浪潮》精华摘抄

原书很长&#xff0c;有19.3w字&#xff0c;本文尝试浓缩一下其中的精华。 知识点 GPT相关 谷歌发布LaMDA、BERT和PaLM-E&#xff0c;PaLM 2 Facebook的母公司Meta推出LLaMA&#xff0c;并在博客上免费公开LLM&#xff1a;OPT-175B。 在GPT中&#xff0c;P代表经过预训练(…

一看就会:使用nvm实现多个版本的node自由切换

一、介绍 使用nvm可以方便的在同一台设备上进行多个node版本之间切换&#xff0c;解决不同的项目所使用的node版本不一样的问题 二、安装nvm 如果已安装node环境先卸载后再安装nvm&#xff0c;防止出现不确定错误 1、卸载node环境&#xff0c;并清除node环境变量配置 通过…

【README 小技巧】 展示gitee中开源项目start

【README 小技巧】 展示gitee中开源项目start <a target"_blank" hrefhttps://gitee.com/wujiawei1207537021/wu-framework-parent><img srchttps://gitee.com/wujiawei1207537021/wu-framework-parent/badge/star.svg altGitee star/></a>

我在使用 Copilot 时遇到了许可证验证错误。

如果使用的是 Copilot&#xff0c;并收到以下错误消息&#xff0c;请按以下步骤进行操作&#xff1a; We encountered a problem validating your Copilot license. For more information, see https://aka.ms/copilotlicensecheck 请确保使用的是正确的帐户 请确保已使用具…

Flink动态分区裁剪

1 原理 1.1 静态分区裁剪与动态分区裁剪 静态分区裁剪的原理跟谓词下推是一致的&#xff0c;只是适用的是分区表&#xff0c;通过将where条件中的分区条件下推到数据源达到减少分区扫描的目的   动态分区裁剪应用于Join场景&#xff0c;这种场景下&#xff0c;分区条件在joi…

kafka平滑升级过程指导

一、前言 Apache Kafka作为常用的开源分布式流媒体平台&#xff0c;可以实时发布、订阅、存储和处理数据流,多用于作为消息队列获取实时数据&#xff0c;构建对数据流的变化进行实时反应的应用程序&#xff0c;已被数千家公司用于高性能数据管道、流分析、数据集成和任务关键型…

算法day01_ 27. 移除元素、977.有序数组的平方

推荐阅读 从零开始学数组&#xff1a;深入浅出&#xff0c;带你掌握核心要点 初探二分法 再探二分法 系统的纪录一下刷算法的过程&#xff0c;之前一直断断续续的刷题&#xff0c;半途而废&#xff0c;现在重新开始。话不多说&#xff0c;开冲&#xff01; 27.移除元素 题目 给…

js 面试 什么是WebSockets?HTTP和HTTPS有什么不同?web worker是什么?

概念&#xff1a; webSocket 是一种在客户端和服务端之间建立持久连接的协议&#xff0c;它提供全双工通信通道&#xff0c;是服务器可以主动向客户端推送数据&#xff0c;同时也可以接受客户端发送的数据。 1 webSocket与https区别&#xff1f; 在网络通信中&#xff0c;We…

Acceptor监听套接字管理类实现(模块七)

目录 类功能 类定义 类实现 编译测试 类功能 类定义 // 监听套接字管理类 class Acceptor { private:Socket _socket; // 用于创建监听套接字EventLoop *_loop; // 用于对监听套接字进行事件监控Channel _channel; // 用于对监控套接字进行事件管理using AcceptCallback…

11 PLL IP核

PLL IP 核简介 锁相环&#xff08;PLL&#xff09;作为一种反馈控制电路&#xff0c;其特点是利用外部输入的参考信号来控制环路内部震荡信号的频率和相位。因为锁相环可以实现输出信号频率对输入信号频率的自动跟踪&#xff0c;所以锁相环通常用于闭环跟踪电路。锁相环在工作…

36.云原生之SpringCloud+k8s实践

云原生专栏大纲 文章目录 SpringCloudk8s介绍spring-cloud-kubernetes服务发现配置管理负载均衡选主 spring-cloud-bookinfo案例构建项目环境配置namespace部署与验证productpagegatewaybookinfo-admindetailsratingsreviewsreviews-v1reviews-v2 总结 SpringCloudk8s介绍 ht…

React UI框架Antd 以及 如何按需引入css样式配置(以及过程中各种错误处理方案)

一、react UI框架Antd使用 1.下载模块 npm install antd -S 2.引入antd的样式 import ../node_modules/antd/dist/reset.css; 3.局部使用antd组件 import {Button, Calendar} from antd; import {PieChartTwoTone} from ant-design/icons; {/* 组件汉化配置 */} import l…

SORA 到底是什么?如何用bitget wallet购买?

什么是SORA&#xff1f; SORA 是一种模因币&#xff0c;灵感来自 OpenAI 最新的人工智能模型 Sora&#xff0c;它巧妙地根据文本输入生成视频。 SORA 诞生于加密社区内人工智能项目的热潮中&#xff0c;利用 OpenAI 的公告推出了一种独特且时尚的数字资产。正如 memecoin 网站…

【管理咨询宝藏资料28】某信息技术有限公司战略规划报告

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏资料28】某信息技术有限公司战略规划报告 【关键词】战略规划、对标研究、管理咨询 【文件核心观点】 - 使企业实现商业流程整合&#xff0c;构…

宏集小型PLC应用于浮动封盖机

导言 仅通过1个控制面板和1个紧凑型PLC控制自动化设备中来自不同制造商的13种不同电机&#xff0c;听起来难以置信&#xff01;但这是宏集科技已经落地的合作项目&#xff01; 案例概况 客户&#xff1a;TREPAK 合作伙伴&#xff1a;SDT 应用&#xff1a;封盖机 应用产品&…

UE5 UE4 自定义插件自动开启关联插件(plugin enable)

在我们自己编写UE4、UE5的插件时&#xff0c;常常需要开启相关联的插件进行功能编写。 例如&#xff1a;UE4/5 批量进行贴图Texture压缩、修改饱和度_ue4批量修改纹理大小-CSDN博客 而让插件使用者每次使用时&#xff0c;依次进行开启其他相关联插件确实有些麻烦。 如何只需要…

【数据结构】数组

第一章、为什么数组的下标一般从0开始编号 提到数组&#xff0c;读者肯定不陌生&#xff0c;甚至还会很自信地说&#xff0c;数组很简单。编程语言中一般会有数组这种数据类型。不过&#xff0c;它不仅是编程语言中的一种数据类型&#xff0c;还是基础的数据结构。尽管数组看起…