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

蓝桥杯第19天(Python)(疯狂刷题第2天)

题型:

1.思维题/杂题:数学公式,分析题意,找规律

2.BFS/DFS:广搜(递归实现),深搜(deque实现)

3.简单数论:模,素数(只需要判断到 int(sqrt(n))+1),gcd,lcm,快速幂(位运算移位操作),大数分解(分解为质数的乘积)

4.简单图论:最短路(一对多(Dijstra,临接表,矩阵实现),多对多(Floyd,矩阵实现)),最小生成树(并查集实现)

5.简单字符串处理:最好转为列表操作

6.DP:线性DP,最长公共子序列,0/1背包问题,最长连续字符串,最大递增子串

7.基本算法:二分,贪心,组合,排列,前缀和,差分

8.基本数据结构:队列,集合,字典,字符串,列表,栈,树

9.常用模块:math,datetime,sys中的设置最大递归深度(sys.setrecursionlimit(3000000)),collections.deque(队列),itertools.combinations(list,n)(组合),itertools.permutations(list,n)(排列)  heapq(小顶堆)

目录

1.一元三次方程求解(二分,格式化输出)

2.解立方根(二分)

3.分巧克力(二分,注意二分的两个模板)

4.翻硬币(贪心)

5.巧克力(贪心) 

6.顺子日期(思维题,细心,手数)

7.乘积尾零(大数运算或者大数分解)

8. 平方和 (字符串运算)

9.快乐司机(贪心)

10.蓝肽子序列(DP,最长公共子序列)

11.合唱队形(最长递增子序列)

12.字符串编辑距离(DP,经典问题DP)

13.小明的背包1(经典0/1背包问题DP)

14.最长公共子序列(模板题)

15.最长连续递增子序列(DP模板)


1.一元三次方程求解(二分,格式化输出)

import sys  #设置递归深度
import collections  #队列
import itertools  # 排列组合
import heapq  #小顶堆
import math
sys.setrecursionlimit(300000)a,b,c,d = map(float,input().split())
def f(x):return x*x*x*a+x*x*b+x*c+dans=[]
for i in range(-100,100):if f(i)==0:ans.append(i)if f(i)*f(i+1)<0:  # 在(i,i+1)内有根l=i;r=i+1while(r-l>=0.001):  # 保留精度,2位小数,注意循环条件mid=(l+r)/2if f(l)*f(mid)<0:r=midelse:l=midans.append(l)
if f(100)==0:ans.append(100)
for i in ans:print("{:.2f}".format(i),end=' ')

算是送分题,主要考查了二分法的使用,同时边界处理,即不要漏掉区间范围,注意格式化输出语句。

2.解立方根(二分)

import sys  #设置递归深度
import collections  #队列
import itertools  # 排列组合
import heapq  #小顶堆
import math
sys.setrecursionlimit(300000)T=int(input())
for i in range(T):n=int(input())for i in range(100000):if i**3==n:   # 优先判定是否相等,结果为整数print('{:.3f}'.format(i))breakelif i**3>n:  # 最后的结果为小数,通过二分处理left=i-1;right=i;while(right-left>0.00001):mid=(left+right)/2if(mid**3>n):right=midelse:left=midprint('{:.3f}'.format(l))break

送饭送分,实数二分题不需要考虑边界加一减一问题,对于精度问题用一个while语句就可以了,例如保留两位小数,那么语句为 while ( right - left) >= 0.001 

3.分巧克力(二分,注意二分的两个模板)

import sys  #设置递归深度
import collections  #队列
import itertools  # 排列组合
import heapq  #小顶堆
import math
sys.setrecursionlimit(300000)n,k = map(int,input().split())
save = [] #存放巧克力
Max=1
for i in range(n):temp=list(map(int,input().split()))Max=max(max(temp),Max)  # 记录大巧克力边长,之后用于二分save.append(temp)def check(i):count=0for a,b in save:count+=(a//i)*(b//i)if count>=k:return Trueelse:return False
left=1
right=Max
while(left<right):  # 找<=x的第一个mid=(left+right+1)//2#print(left,mid,right)#print('-'*40)if check(mid):left=midelse:right=mid-1
print(left)
#print(right)
#print(mid)'''
2 10
6 5
5 6
测试结果
1 4 6
----------------------------------------
1 2 3
----------------------------------------
2 3 3
----------------------------------------
2
2
3'''

这里不是实数二分,需要将题目转为二分题来进行解决,注意两个二分模板的不同使用情况,当找的是<=x的第一个时,需要令mid=(left+right+1)//2,找>=x的第一个,mid=(right+left)//2。

两个二分模板

找>=x的第一个,mid=(low+high)//2

a=[0,3,5,7,9,11,13]
# [0,1,2,3,4,5,6]
# low = 0 high =6 mid =3  ----->   low=4  high =6
# low = 4 high =6 mid =5  ----->   low=4  high =5
# low = 4 high =5 mid =4  ----->   low=5  high =5
# break   low=high=5
# 找的是靠右的那一个
low=0
high=len(a)-1
def search(low,high,x):  # 查找的是后一个while (low<high):mid =(low+high)//2   # (2+3)//2=2  偏左if (a[mid]>=x):high=midelse:low=mid+1print(a[low])print(a[high])
search(low,high,10)  # 查找结果10

找<=x的第一个,mid=(low+high+1)//2 

a=[0,3,5,7,9,11,13]
# [0,1,2,3,4,5,6]
# low = 0 high =6 mid =3  ----->   low=3  high =6
# low = 3 high =6 mid =5  ----->   low=3  high =4
# low = 3 high =4 mid =4  ----->   low=4  high =4
# break   low=high=4
# 找的是靠左的那一个
low=0
high=len(a)-1
def search(low,high,x):  # 查找的是前一个while (low<high):mid =(low+high+1)//2   # (2+3+1)//2=3  偏右if (a[mid]<=x):low=midelse:high=mid-1print(a[low])print(a[high])
search(low,high,10)  # 查找结果10

4.翻硬币(贪心)

 

s = input()
t = input()
cnt = 0
for i in range(len(s) - 1):if s[i] != t[i]:if s[i + 1] == '*':s = s[:i + 1] + 'o' + s[i + 2:]else:s = s[:i + 1] + '*' + s[i + 2:]cnt += 1
print(cnt)

重点在于怎么想到这是贪心题,靠运气,想不出来就按着贪心做,暴力循环

5.巧克力(贪心) 

import sys  #设置递归深度
import collections  #队列
import itertools  # 排列组合
import heapq  #小顶堆
import math
sys.setrecursionlimit(300000)x,n=map(int,input().split())  # 天数,巧克力种类数
#day=[0]*(x+1)  #记录吃什么
thing =[]
for i in range(1,n+1):  # 存储商品thing.append(list(map(int,input().split())))
ans=0
thing.sort(key=lambda x:x[0] )  # 按单价从小到大排序
thing=[0]+thing  # 转为下标从一开始# 开始分配每天的食物    thing-》 [单价,保质期,数量]
for i in range(1,x+1): # 遍历天数for j in range(1,n+1):  # 遍历货物if thing[j][1]>=i and thing[j][2]>0:  # 没过保质期且还有剩余#print(j)#day[i]=j    ans+=thing[j][0]  # 第i天选第j类食物thing[j][2]-=1  # 用了一个需要减一break
if ans==0:print(-1)
else:print(ans)# 没有用到记录数组,直接遍历的过程中就可以算出答案然后进行输出

中档题目难度吧,感觉就是贪心想法,然后按照题目要求来做就行了,注意便于处理,可以转换下标,即从1开始处理,下标从1开始,有时候需要记录数组,有时候不需要,需要在代码编写过程中自己注意。

6.顺子日期(思维题,细心,手数)

 

 手数,枚举所有可能情况就可以了,注意细心,不要急,将所有情况统计完,算是送分题,主要是读懂题意

7.乘积尾零(大数运算或者大数分解)

import sys  #设置递归深度
import collections  #队列
import itertools  # 排列组合
import heapq  #小顶堆
import math
sys.setrecursionlimit(300000)# 因为只有2,5有用,所以只记录2和5的数量
count1=0
count2=0s="""5650 4542 3554 473 946 4114 3871 9073 90 4329 
2758 7949 6113 5659 5245 7432 3051 4434 6704 3594 
9937 1173 6866 3397 4759 7557 3070 2287 1453 9899 
1486 5722 3135 1170 4014 5510 5120 729 2880 9019 
2049 698 4582 4346 4427 646 9742 7340 1230 7683 
5693 7015 6887 7381 4172 4341 2909 2027 7355 5649 
6701 6645 1671 5978 2704 9926 295 3125 3878 6785 
2066 4247 4800 1578 6652 4616 1113 6205 3264 2915 
3966 5291 2904 1285 2193 1428 2265 8730 9436 7074 
689 5510 8243 6114 337 4096 8199 7313 3685 211"""
save=list(map(int,s.split()))
#print(save)
for i in save:while i%2==0:count1+=1i=i//2while i%5==0:count2+=1i=i//5print(min(count1,count2))

 python可以处理大数,直接分隔字符串进行相乘,最后统计有多少个零就行了,可以转为字符串或者列表统计,也可以通过整数取余来统计。

或者将整数分解为2,5,看谁的数量更少,就有多少个0

8. 平方和 (字符串运算)

送分题, 直接遍历1-2019,转为字符串判定数字是否存在这些数中,然后平方求和就可以了

 9.快乐司机(贪心)

 送分题,因为没有限制,可以装散的,那么直接按照最大单位价值排序,然后从大到小装就可以了

10.蓝肽子序列(DP,最长公共子序列)

 

import sys  #设置递归深度
import collections  #队列
import itertools  # 排列组合
import heapq  #小顶堆
import math
sys.setrecursionlimit(300000)s1=input()+'!'
s2=input()+'!'# 拆分字符串
temp=''
ss1=[]
ss2=[]
for i in range(len(s1)):temp+=s1[i]if s1[i+1]=='!':ss1.append(temp)temp=''breakif s1[i+1].isupper():ss1.append(temp)temp=''for i in range(len(s2)):temp+=s2[i]if s2[i+1]=='!':ss2.append(temp)breakif s2[i+1].isupper():ss2.append(temp)temp=''# 处理公共最长字符串
ss1=[0]+ss1
ss2=[0]+ss2
dp = [[0]*1010 for i in range(1010)]
for i in range(1,len(ss1)):for j in range(1,len(ss2)):dp[i][j]=max(dp[i-1][j],dp[i][j-1])if ss1[i]==ss2[j]:dp[i][j]=max(dp[i][j],dp[i-1][j-1]+1)print(dp[len(ss1)-1][len(ss2)-1])

考察最长公共子序列,这里有个难点就是需要拆分,我这里通过给输入加结束符便于处理,需要牢记最长公共自序列模板

dp[i][j] = max( dp[i-1][j] ,dp[i][j-1] )

if s1=s2:
        dp=max( dp[i][j] , dp[i-1][j-1]+1 )

11.合唱队形(最长递增子序列)

import sys  #设置递归深度
import collections  #队列
import itertools  # 排列组合
import heapq  #小顶堆
import math
sys.setrecursionlimit(300000)# 两次连续最长递增字符列
n=int(input())
rem = [0]+list(map(int,input().split()))  # 处理下标
dp1=[1]*(n+1)  # 从左到右
dp2=[1]*(n+1)  # 从右到左for i in range(2,n+1):  # 顺序找最长公共子序列for j in range(1,i):if rem[j]<rem[i]:dp1[i]=max(dp1[i],dp1[j]+1)
#print(*dp1)
for i in range(n-1,-1,-1):  # 逆序找最长公共子序列for j in range(n,i,-1):if rem[j]<rem[i]:dp2[i]=max(dp2[i],dp2[j]+1)
#print(*dp2)ans=0
for i in range(1,n+1):  # 计算最大值ans=max(dp1[i]+dp2[i]-1,ans)# print(ans)
print(n-ans)

记住最递增子序列从1开始,初始化dp全为1,因为本身就算一个,其次注意最长递增子序列的递推式。

12.字符串编辑距离(DP,经典问题DP)

 

import sys  #设置递归深度
import collections  #队列
import itertools  # 排列组合
import heapq  #小顶堆
import math
sys.setrecursionlimit(300000)def init(s,t):dp = [[0 for i in range(len(t) + 1)] for j in range(len(s) + 1)]for i in range(len(s) + 1):dp[i][0] = 0for j in range(1,len(t) + 1):dp[0][j] = 999999return dpif __name__ == '__main__':s = list(input())t = list(input())dp=init(s,t)for i in range(len(s)):for j in range(len(t)):if s[i] == t[j]:dp[i + 1][j + 1] = dp[i][j]else:dp[i + 1][j + 1] = min(dp[i][j] + 1, dp[i][j + 1])print(dp[-1][-1])

编辑距离的动态规划不太会,这个需要多练
 

模板Python

def init(s,t):dp = [[0 for i in range(len(t) + 1)] for j in range(len(s) + 1)]for i in range(len(s) + 1):dp[i][0] = 0for j in range(1,len(t) + 1):dp[0][j] = 999999return dpif __name__ == '__main__':s = list(input())t = list(input())dp=init(s,t)for i in range(len(s)):for j in range(len(t)):if s[i] == t[j]:dp[i + 1][j + 1] = dp[i][j]else:dp[i + 1][j + 1] = min(dp[i][j] + 1, dp[i][j + 1])dp[i + 1][j + 1] = min( dp[i + 1][j + 1] ,dp[j+1][i]+1)print(dp[-1][-1])

模板C++

#include<iostream>
#include<algorithm>
#include<set>
#include<string>using namespace std;
#define INF 99999999
string s, t;
int dp[1010][1010];void init(){for (int i = 0; i <= s.size(); i++) dp[i][0] = 0;for (int j = 1; j <= t.size(); j++) dp[0][j] = INF;
}int main() {cin >> s >> t;init();for (int i = 1; i <= s.size(); i++) {for (int j = 1; j <= t.size(); j++) {if (s[i - 1] == t[j - 1]) dp[i][j] = dp[i - 1][j - 1];else  dp[i][j] = min(dp[i - 1][j - 1],min(dp[i - 1][j], dp[i][j - 1])) + 1;}}cout << dp[s.size()][t.size()];return 0;
}

13.小明的背包1(经典0/1背包问题DP)

 

def solve(N,C):  # 从左到右,从上到下 (先种类,再体积)for i in range(1,N+1): # N种物品,先1种,再2种......for j in range(1,C+1):  # 当前背包体积if c[i]>j : dp[i][j] = dp[i-1][j]    # 新增的第i种物品的体积大于背包重量,只有不选,继承上一个选择else: dp[i][j] = max(dp[i-1][j-c[i]]+w[i],dp[i-1][j])  # 装或者不装,找最大值return dp[N][C]
N,C= map(int,input().split())
n=3010
dp = [[0]*n for i in range(n)]  # 初始化dp数组,预留更大空间
c=[0]*n  # 记录体积
w=[0]*n # 记录价值
for i in range(1,N+1):   #读入N种物品的价值和体积c[i],w[i] = map(int,input().split())
print(solve(N,C))

14.最长公共子序列(模板题)

import sys  #设置递归深度
import collections  #队列
import itertools  # 排列组合
import heapq  #小顶堆
import math
sys.setrecursionlimit(300000)n,m=map(int,input().split())
a=[0]+list(map(int,input().split()))
b=[0]+list(map(int,input().split()))
dp=[[0]*1010 for i in range(1010)]
for i in range(1,n+1):for j in range(1,m+1):dp[i][j]=max(dp[i-1][j],dp[i][j-1])if a[i]==b[j]:dp[i][j]=max(dp[i][j],dp[i-1][j-1]+1)
print(dp[n][m])

 最长公共子序列,模板题,注意初始化dp数组为0就可以了。

15.最长连续递增子序列(DP模板)

import sys  #设置递归深度
import collections  #队列
import itertools  # 排列组合
import heapq  #小顶堆
import math
sys.setrecursionlimit(300000)n=int(input())
save=[0]+list(map(int,input().split()))
dp=[1]*(n+1)  # 注意初始化从1开始
for i in range(2,n+1):for j in range(1,i):if save[i]>save[j]:dp[i]=max(dp[i],dp[j]+1)
print(max(dp))   #最长公共子序列,dp[n]不一定是最大的#a : 1 4 5 2 1
#DP: 1 2 3 2 1

误区:dp[ n ]不一定是最大的, 一定要注意误区,现在才发现,dp[ i ] 是以i为尾元素的子序列的最大值。

相关文章:

蓝桥杯第19天(Python)(疯狂刷题第2天)

题型&#xff1a; 1.思维题/杂题&#xff1a;数学公式&#xff0c;分析题意&#xff0c;找规律 2.BFS/DFS&#xff1a;广搜&#xff08;递归实现&#xff09;&#xff0c;深搜&#xff08;deque实现&#xff09; 3.简单数论&#xff1a;模&#xff0c;素数&#xff08;只需要…...

(五)手把手带你搭建精美简洁的个人时间管理网站—基于Axure的首页原型设计

&#x1f31f;所属专栏&#xff1a;献给榕榕&#x1f414;作者简介&#xff1a;rchjr——五带信管菜只因一枚 &#x1f62e;前言&#xff1a;该专栏系为女友准备的&#xff0c;里面会不定时发一些讨好她的技术作品&#xff0c;感兴趣的小伙伴可以关注一下~&#x1f449;文章简介…...

阿里面试:为什么MySQL不建议使用delete删除数据?

MySQL是一种关系型数据库管理系统&#xff0c;它的数据存储是基于磁盘上的文件系统实现的。MySQL将数据存储在表中&#xff0c;每个表由一系列的行和列组成。每一行表示一个记录&#xff0c;每一列表示一个字段。表的结构由其列名、数据类型、索引等信息组成。 MySQL的数据存储…...

低代码开发公司:用科技强力开启产业分工新时代!

实现办公自动化&#xff0c;是不少企业的共同追求。低代码开发公司会遵循时代发展规律&#xff0c;注入强劲的科技新生力量&#xff0c;在低代码开发市场厚积爆发、努力奋斗&#xff0c;推动企业数字化转型升级&#xff0c;为每一个企业的办公自动化升级创新贡献应有的力量。 一…...

参考mfa官方文档实践笔记(亲测)

按顺序执行以下指令&#xff1a; conda create -n aligner -c conda-forge montreal-forced-alignerconda config --add channels conda-forgeconda activate alignerconda install pytorch torchvision torchaudio pytorch-cuda11.7 -c pytorch -c nvidia 如果报错&#xff1…...

【 第六章 拦截器,注解配置springMVC,springMVC执行流程】

第六章 拦截器&#xff0c;注解配置springMVC&#xff0c;springMVC执行流程 1.拦截器&#xff1a; ①springMVC中的拦截器用于拦截控制器方法的执行。 ②springMVC的拦截器需要实现HandlerInterceptor或者继承HandlerInterceptorAdapter类。 ③springMVC的拦截器必须在spring…...

一种编译器视角下的python性能优化

“Life is short&#xff0c;You need python”&#xff01;老码农很喜欢python的优雅&#xff0c;然而&#xff0c;在生产环境中&#xff0c;Python这样的没有优先考虑性能构建优化的动态语言特性可能是危险的&#xff0c;因此&#xff0c;流行的高性能库如TensorFlow 或PyTor…...

太逼真!这个韩国虚拟女团你追不追?

“她们看上去太像真人了”&#xff0c; 韩国虚拟女团MAVE的首支MV和打歌舞台引发网友阵阵惊呼。现在&#xff0c;她们的舞蹈已经有真人在挑战了。 这一组虚拟人的“逼真”倒不在脸&#xff0c;主要是MAVE女团的舞台动作接近自然&#xff0c;不放近景看&#xff0c;基本可以达到…...

安全与道路测试:自动驾驶系统安全性探究

随着自动驾驶技术的迅速发展&#xff0c;如何确保自动驾驶系统的安全性已成为业界关注的焦点。本文将探讨自动驾驶系统的潜在风险、安全设计原则和道路测试要求。 潜在风险 自动驾驶系统在改善交通安全和提高出行效率方面具有巨大潜力&#xff0c;但其安全性仍面临许多挑战&a…...

chatGPT学英语,真香!!!

文章目录学习目标学习内容目标方式过程学习时间学习产出学习目标 能够在三个月的练习后&#xff0c;和真人外教比较流畅的沟通&#xff01; 最近chatGPT实在是太火了&#xff0c;各种事情都能干&#xff0c;能改论文、写代码和翻译。 看到B站很多教程教我们直接用chatGPT进行…...

12 Cache Memory

内存的层次结构 计算机内存的层级结构是一种将不同类型的存储设备按照速度、容量和访问时间组织起来的方式。这种层级结构提高了计算机的性能&#xff0c;使得处理器能够高效地访问数据。通常&#xff0c;内存层级结构可分为以下几个层次&#xff1a; 寄存器&#xff1a;寄存器…...

【CSS系列】第一章 · CSS基础

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…...

【Java代码审计】表达式注入

1 前置知识 1.1 EL表达式 EL表达式主要功能&#xff1a; 获取数据&#xff1a;可以从JSP四大作用域中获取数据执行运算&#xff1a;执行一些关系运算&#xff0c;逻辑运算&#xff0c;算术运算获取web开发常用对象&#xff1a;通过内置 的11个隐式对象获取想要的数据调用jav…...

Python-GEE遥感云大数据分析、管理与可视化

Python-GEE遥感云大数据分析、管理与可视化近年来遥感技术得到了突飞猛进的发展&#xff0c;航天、航空、临近空间等多遥感平台不断增加&#xff0c;数据的空间、时间、光谱分辨率不断提高&#xff0c;数据量猛增&#xff0c;遥感数据已经越来越具有大数据特征。遥感大数据的出…...

信息学奥赛一本通 1375:骑马修栅栏(fence) | 洛谷 P2731 [USACO3.3]骑马修栅栏 Riding the Fences

【题目链接】 ybt 1375&#xff1a;骑马修栅栏(fence) 洛谷 P2731 [USACO3.3]骑马修栅栏 Riding the Fences 【题目考点】 1. 图论&#xff1a;欧拉回路 欧拉回路存在的条件&#xff1a;图中所有顶点的度都是偶数欧拉路径存在的条件&#xff1a;图中只有两个度为奇数的顶点…...

Spring Boot 应用的打包和发布

1. 创建项目&#xff08;example-fast&#xff09; 基于 Spring Boot 创建一个 WEB 项目 example-fast。 2. 编译打包 2.1 采用 IDEA 集成的 Maven 环境来对 Spring Boot 项目编译打包&#xff0c;可谓是超级 easy 2.2 mvn 命令打包 # mvn clean 清理编译 # install 打包 #…...

linux:iptables (3) 命令行操练(一)

目录 1.命令行手册查缺补漏 2.开始练习,从最陌生的参数练习开启 2.1 --list-rules -S &#xff1a;打印链或所有链中的规则 2.2 --zero -Z 链或所有链中的零计数器 2.3 --policy -P 修改默认链的默认规则 2.4 --new -N 接下来练习添加和删除自定义链 1.命令行手册查缺补…...

synchronized(this) 与synchronized(class) 有啥区别

前言 synchronized(this) 与 synchronized(class) 相同处&#xff1a;均对代码加锁&#xff0c;实现互斥性。synchronized(this) 与 synchronized(class) 区别&#xff1a;作用域不同。 synchronized (this) synchronized(this)使用的是对象锁。this为关键词&#xff0c;表示…...

BOSS直拒、失联招聘,消失的“金三银四”,失业的测试人出路在哪里?

裁员潮涌&#xff0c;经济严冬。最近很多测试人过得并不好&#xff0c;行业缩水对测试岗位影响很直接干脆&#xff0c;究其原因还是测试门槛在IT行业较低&#xff0c;同质化测试人员比较多。但实际上成为一位好测试却有着较高的门槛&#xff0c;一名优秀的测试应当对产品的深层…...

华为OD机试【密室逃生游戏】

密室逃生游戏 题目 小强增在参加《密室逃生》游戏&#xff0c;当前关卡要求找到符合给定 密码 K&#xff08;升序的不重复小写字母组 成&#xff09; 的箱子&#xff0c; 并给出箱子编号&#xff0c;箱子编号为 1~N 。 每个箱子中都有一个 字符串 s &#xff0c;字符串由大写字…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

Vue ③-生命周期 || 脚手架

生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09; 什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a; 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

消息队列系统设计与实践全解析

文章目录 &#x1f680; 消息队列系统设计与实践全解析&#x1f50d; 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡&#x1f4a1; 权衡决策框架 1.3 运维复杂度评估&#x1f527; 运维成本降低策略 &#x1f3d7;️ 二、典型架构设计2.1 分布式事务最终一致…...

Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践

前言&#xff1a;本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中&#xff0c;跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南&#xff0c;你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案&#xff0c;并结合内网…...