蓝桥杯第23天(Python)(疯狂刷题第6天)

2023-11-20

题型:

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.《最长不下降子序列》真题练习(dp,线段树)

10.《最优清零方案》真题练习(暴力枚举,线段树维护)


刷题:

1.《排列字母》真题练习(内置函数)

 初步思想:调用内置函数排序就行了

标程:

s = "WHERETHEREISAWILLTHEREISAWAY"
s = list(s)
s.sort()
print("".join(s))

2.《寻找整数》真题练习(埃氏筛法,或者枚举遍历)

 初步思想:遍历,肯定有规律,然后递增找最小值就行。或者就是埃式筛法。

大致思想代码: 

import os
import sys
mp = {2:1, 3:2, 4:1, 5:4, 6:5,7:4,8:1,9:2,10:9,11:0,12:5,13:10,
      14:11,15:14,16:9,17:0,18:11,19:18,20:9,21:11,22:11,23:15,24:17,25:9,
      26:23,27:20,28:25,29:16,30:29,31:27,32:25,33:11,34:17,35:4,36:29,37:22,
      38:37,39:23,40:9,41:1,42:11,43:11,44:33,45:29,46:15,47:5,48:41,49:46}
# # 先从100-9999里面看看能不能找出一部分
# ls = [i for i in range(100,10**4)]
# result = []

# # 先在[100,9999]中找出除以2-10的余数符合的数字们
# for i in range(2,10):
#       # 使用filter lambda表达式的形式
#       ls = list(filter(lambda  x:x%i==mp[i], ls))
# '''print(ls)
# 此处的结果是[1649, 4169, 6689, 9209],这个结果是有规律的,
# 4169-1649=2520
# 6689-4169=2520
# 9209-6689=2520
# 故而,1649+2520*n的一众结果满足2-10,我们依次接着往下做
# range(起始、末尾、步长)
# '''
#
# #第二次,直接把目光放到(1000,10**9)里面找
# #找10-20之间的
# ls = [i for i in range(1649, 10**9, 2520)]
# for i in range(10,20):
#       ls = list(filter(lambda  x: x%i==mp[i], ls))
'''
print(ls)
结果是[88209209, 321001769, 553794329, 786586889]
[1]-[0]=232792560
[2]-[1]=232792560
故而,88209209+232792560*n
'''

#第三次,直接把目光放在[88209209,10**16]
#找20-30之间的
# ls = [i for i in range(88209209, 10**16, 232792560)]
# for i in range(20,30):
#       ls = list(filter(lambda x:x%i==mp[i], ls))
'''
print(ls)
[391179710009, 2720269272809, 5049358835609,
'''
# a = 2720269272809-391179710009
# ls = [i for i in range(391179710009,10**18,a)]
# for i in range(30,40):
#       ls = list(filter(lambda x:x%i==mp[i],ls))
# print(ls[0])
# 结果是[2022040920220409, 7364972377283609, 12707903834346809,.......
# 只取第一个
print('2022040920220409')

标程:

from math import gcd

#求数字a,b的最小公倍数
def lcm(a, b):
    return a * b // gcd(a, b)

a=[0, 0,
    1,2,1,4,5,4,1,2,9,0,5,10,
    11,14,9,0,11,18,9,11,11,15,17,9,
    23,20,25,16,29,27,25,11,17,4,29,22,
    37,23,9,1,11,11,33,29,15,5,41,46]
x = 0
step = 1
for i in range(2, 50):
    #暴力求解满足x % i = a[i]
    while x % i != a[i]:
        x += step
    step = lcm(step, i)
print(x)

3.纸张尺寸(循环,判断)

初步想法: 读懂题意,照着逻辑敲出来就行了,没得难度,送分,长除以2的时候可能需要维护长边,因为可能长会比宽大

标程:

x = int(input()[1])
a, b = 1189, 841
for i in range(x):
    a //= 2
    if a < b:
        a, b = b, a
print(a)
print(b)

4.数位排序(自定义排序规则,字符串操作)

初步思路:将数字以字符形式存储,然后转列表,自定义排序规则,首先比较和,如果和相同再按字典序排序,自定义排序规则(functools)

标程:

n = int(input())
m = int(input())
a = [i for i in range(1, n + 1)]
b = [0] * (n + 1)
for i in range(1, n + 1):
    #求i的数位之和
    num = i
    while num != 0:
        b[i] += num % 10
        num //= 10

a.sort(key=lambda x: (b[x], x))
print(a[m - 1])

5.《蜂巢》真题练习(思维题,坐标转换)

 初步思路:转换为直角坐标来做!

 正解:也是转为二元组坐标,但是是以3为x的正方向,2为y的正方向
 

标程:

# 方向增量
dir = [[-1, 0], [-1, 1], [0, 1], [1, 0], [1, -1], [0, -1]]

# 将<d,p,q>转换成新坐标系下的<x,y>
def change(d, p, q):
    x, y = 0, 0
    x += dir[d][0] * p
    y += dir[d][1] * p
    d = (d + 2) % 6
    x += dir[d][0] * q
    y += dir[d][1] * q
    return x, y


d1, p1, q1, d2, p2, q2 = map(int, input().split())
Ax, Ay = change(d1, p1, q1)# 转换坐标
Bx, By = change(d2, p2, q2)
first, second = Ax - Bx, Ay - By# 计算差值向量
if first * second >= 0:# 分类讨论
    print(abs(first) + abs(second))
else:
    print(max(abs(first), abs(second)))

6.《消除游戏》真题练习(暴力循环,列表,字符串操作)

初步思路:遍历一次找到所有的边缘字符,记录下标,然后删除。最后如果数组长度不变或者长度为零,就退出。

正解:思路类似,有个优化,就是标记数组长度为当前字符长度,可以节约时间。

s = list(input())
last_length = 0

while True:
    length = len(s)
    #如果长度等于0,终止
    if length == 0:
        print("EMPTY")
        break
    #如果长度未发生变化,终止
    if length == last_length:
        print("".join(s))
        break
    vis = [0] * length
    #根据题意找出边缘字符
    for i in range(length):  # 加条件判断边界
        if (i - 1) >= 0 and (i + 1) < length and s[i] == s[i - 1] and s[i] != s[i + 1]:
            vis[i] = vis[i + 1] = 1
        if (i - 1) >= 0 and (i + 1) < length and s[i] != s[i - 1] and s[i] == s[i + 1]:
            vis[i] = vis[i - 1] = 1
    #将边缘字符去除
    tmp_s = []
    for i in range(length):
        if vis[i] == 0:
            tmp_s.append(s[i])
    s = tmp_s
    last_length = length

7.《全排列的价值》真题练习(数学性质,排列组合)

 初步思想:找规律,看是否有规律,没得的话就暴力,能过多少过多少。(无规律)

 正解:数学性质可以得到,顺序对个数加上逆序对个数 的和是一定的,等于n*(n-1)//2。

同时所有排列的顺序对之和等于所有排列的逆序对之和

mod = 998244353
n = int(input())
ans = n * (n - 1) // 2 % mod
for i in range(3, n + 1):
    ans = ans * i % mod
print(ans)

8.《技能升级》真题练习(二分)

 初步思想:贪心,优先升级升级后增加点数最多的,每次升级后更新升级点数和技能有用值。(过40%数据)

import sys  #设置递归深度
import collections  #队列
import itertools  # 排列组合
import heapq  #小顶堆
import math
sys.setrecursionlimit(300000)
import functools   # 自定义比较函数  -1不变,1交换


save=[]
n,m=map(int,input().split())
for i in range(n):
   a,b=map(int,input().split())
   save.append([a,b,math.ceil(a/b)])

save.sort(key=lambda x:x[0],reverse=True)  # 按当前升级增点树排序
#print(save)
ans=0
for i in range(m):  # 升级m次技能
   for i in save:
      if i[2]>0:   # 升级还有效
         ans+=i[0]
         i[2]-=1
         i[0]=i[0]-i[1]
         break
   save.sort(key=lambda x:x[0],reverse=True)  # 按当前升级增点树排序
   #print(save)
print(ans)

正解:将问题转变成在 N 个递减的等差数列中前 M 大和是多少,第 i 个等差数列的首项为 Ai​,公差为 Bi​。由于是等差数列,存在单调性,可以使用二分答案求出第 M 大的数值

标程:

n, m = map(int, input().split())
a = [0] * (n + 1)
b = [0] * (n + 1)
for i in range(1, n + 1):
  a[i], b[i] = map(int, input().split())

#假设第m大为x,求存在多少个数字>=x
def check(x):
  cnt = 0
  for i in range(1, n + 1):
    if a[i] < x:
      continue
    k = (a[i] - x) // b[i]
    cnt += k + 1
  return cnt >= m

left, right, x = 0, 1000000, 0
while left <= right:
  mid = (left + right) // 2
  if check(mid):
    x, left = mid, mid + 1
  else:
    right = mid - 1

#已经求出第M大为x,求解前M大和
#大于x的数字个数num,数字之和ans
num, ans = 0, 0
for i in range(1, n + 1):
  if a[i] < x:
    continue
  #找一个最大的满足k:a[i] - k * b[i] > x
  k = (a[i] - x) // b[i]
  if k * b[i] != (a[i] - x):
    k += 1
  #a[i] + a[i]-b[i] + ... +a[i]-(k-1)*b[i]
  ans += (a[i] + a[i] - (k - 1) * b[i]) * k // 2
  num += k
ans += (m - num) * x
print(ans)

9.《最长不下降子序列》真题练习(dp,线段树)

 初步思想:首先通过dp算出最长递增子序列,然后从最长结尾倒推回去看是否有区间满足<=k,有的话+k就行了。(不要这道题分,不会

正解:dp最长不下降子序列,线段树

标程:

import sys

input = lambda: sys.stdin.buffer.readline().rstrip()

maxn = 100010
b = [0] * maxn
dp = [0] * maxn
tree = [0] * (maxn * 4)

#权值线段树,维护dp数组,不需要初始化
#更新下标为x,与val取max
def update(o, l, r, x, val):
    if l == r:
        tree[o] = max(tree[o], val)
        return
    mid = (l + r) >> 1
    if x <= mid:
        update(o << 1, l, mid, x, val)
    else:
        update(o << 1 | 1, mid + 1, r, x, val)
    tree[o] = max(tree[o << 1], tree[o << 1 | 1])

#查询区间[L,R]最大值
def query(o, l, r, L, R):
    if L <= l and r <= R:
        return tree[o]
    mid = (l + r) >> 1
    ans = 0
    if L <= mid:
        ans = max(ans, query(o << 1, l, mid, L, R))
    if R > mid:
        ans = max(ans, query(o << 1 | 1, mid + 1, r, L, R))
    return ans

n, k = list(map(int, input().split()))
a = list(map(int, input().split()))
if n == k:
    print(n)
else:
    #离散化
    S = set(a)    #去重
    b = list(S)   #排序
    tot = len(b)
    b.sort()
    for i in range(len(a)):
        left, right, ans = 0, tot - 1, -1
        while left <= right:
            mid = (left + right) >> 1
            if b[mid] >= a[i]:
                ans = mid
                right = mid - 1
            else:
                left = mid + 1
        a[i] = ans + 1
    a = [0, *a]
    
    ans = 0
    #从前往后遍历a,放入权值线段树中
    for i in range(1, n + 1):
        dp[i] = query(1, 1, tot, 1, a[i]) + 1
        update(1, 1, tot, a[i], dp[i])
    #重新清空权值线段树
    tree = [0] * (maxn * 4)
    for i in range(n, k, -1):
        #a[i-k+1] ... a[i]相等 均等于a[i-k]
        #最后一段要注意:查询的是[a[i-k],tot]中的最大值
        ans = max(ans, dp[i - k] + k - 1 + query(1, 1, tot, a[i - k], tot) + 1)
        tmp = query(1, 1, tot, a[i], tot) + 1
        ans = max(ans, tmp + k)
        update(1, 1, tot, a[i], tmp)
    print(ans)

10.《最优清零方案》真题练习(暴力枚举,线段树维护)

 初步思路:循环遍历就行,优先操作2,其次操作1。

正解:思路类似,从左到右枚举遍历,但是用线段树维护

标程:

maxn = 1000000 + 10
tree_mi = [0] * (maxn * 4)
tree_add = [0] * (maxn * 4)

n, k = list(map(int, input().split()))
a = list(map(int, input().split()))
a = [0, *a]

#线段树模板
#利用左右儿子信息更新节点o
def push_up(o):
    tree_mi[o] = min(tree_mi[o << 1], tree_mi[o << 1 | 1])

#利用节点o的lazy标记add更新左右儿子
def push_down(o):
    if tree_add[o] != 0:
        tree_add[o << 1] += tree_add[o]
        tree_mi[o << 1] += tree_add[o]
        tree_add[o << 1 | 1] += tree_add[o]
        tree_mi[o << 1 | 1] += tree_add[o]
        tree_add[o] = 0

#建树
def build(o, l, r):
    tree_add[o] = 0
    if l == r:
        tree_mi[o] = a[l]
        return
    mid = (l + r) >> 1
    build(o << 1, l, mid)
    build(o << 1 | 1, mid + 1, r)
    push_up(o)

#查询区间[L,R]的最小值
def query(o, l, r, L, R):
    if L <= l and r <= R:
        return tree_mi[o]
    push_down(o);
    mid = (l + r) >> 1
    ans = 1000000000;
    if L <= mid:
        ans = min(ans, query(o << 1, l, mid, L, R))
    if R > mid:
        ans = min(ans, query(o << 1 | 1, mid + 1, r, L, R))
    return ans

#区间更新[L,R]统一加上val
def update(o, l, r, L, R, val):
    if L <= l and r <= R:
        tree_mi[o] += val
        tree_add[o] += val
        return
    push_down(o);
    mid = (l + r) >> 1
    if L <= mid:
        update(o << 1, l, mid, L, R, val)
    if R > mid:
        update(o << 1 | 1, mid + 1, r, L, R, val)
    push_up(o);


build(1, 1, n)
ans = 0
for i in range(1, n - k + 2):
    #查询区间[i, i+k-1]的最小值
    mi = query(1, 1, n, i, i + k - 1)
    if mi == 0:                     #无法进行区间消除
        #res表示当前的a[i]
        res = query(1, 1, n, i, i)
        #把当前的a[i]置为0
        update(1, 1, n, i, i, -res)
        ans += res
    else:
        ans += mi
        #区间消除
        update(1, 1, n, i, i + k - 1, -mi)
        #res表示当前的a[i]
        res = query(1, 1, n, i, i)
        #把当前的a[i]置为0
        update(1, 1, n, i, i, -res)
        ans += res
for i in range(n - k + 2, n + 1):
    ans += query(1, 1, n, i, i)
print(ans)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝桥杯第23天(Python)(疯狂刷题第6天) 的相关文章

  • 单元测试 python 代码,其中 configparser 从配置文件中读取

    我是 python 单元测试的新手 我学习并进行了示例单元测试 其中方法接受输入并返回输出 但对于下面提到的代码 我有一些疑问 如何在unittest中模拟init方法的configparser 路径 config program cfg
  • lxml 中的通配符命名空间

    如何使用 xpath 忽略 xml 命名空间进行查询 我正在使用 python lxml 库 我尝试了以下解决方案this https stackoverflow com questions 13463871 xpath selecting
  • 有没有办法使用 Mayavi 填充陀螺仪表面的一侧?

    我正在使用 Mayavi 绘制陀螺仪的等值面 我的问题是我需要通过填充两个生成区域的一侧来获得更坚固的结构 在下面的图片中 您可以看到我生成的等值面的外观以及填充一侧后的外观 我生成的等值面 它应该是什么样子 等值面可以通过以下方程生成 U
  • 自 1.4.0 版本以来,sphinx_rtd_theme 不再是硬依赖项

    C Users Administrator Desktop item code serv documents api gt 制作 html 运行 Sphinx v1 6 2 加载腌制环境 失败 无法获取属性 WarningStream
  • 在Python子目录中创建文件?

    在我的 Python 脚本中 我需要在子目录中创建一个新文件而不更改目录 并且需要从当前目录不断编辑该文件 My code os mkdir datetime dst for ip in open list txt with open ip
  • pandas 用 nan 值切割了一系列

    我想将 pandas cut 函数应用于包含 NaN 的序列 期望的行为是它对非 NaN 元素进行存储并为 NaN 元素返回 NaN import pandas as pd numbers with nan pd Series 3 1 2
  • Python:合并嵌套列表

    初学者在这里 我有 2 个要合并的嵌套列表 list1 a b c d e f g h list2 p q r s t u v w 我正在寻找的输出是 list3 a p q b c r s d e t f g h u v w 这可以在没有
  • 无法从同一项目的 bin 目录导入模块

    我正在构建一个库 该库将通过 pip 包含在其他项目中 我有以下目录 venv 是 virtualenv project bin run py myproj init py logger py venv 我激活虚拟环境 在 bin run
  • 使用数据库数据模型生成 SQLAlchemy 模型、架构和 JSON 响应

    将 Flask 和 SQLAlchemy 用于 Python Web 应用程序 我的目标是创建一个系统 在其中我可以 从现有 PostgreSQL 数据库导入数据模型 并将它们映射到相应 SQLAlchemy 模型中的字段 使用这些 SQL
  • 如何在Python中打印出字母表中的第n个字母?

    ASCII 数学似乎在 Python 中不起作用 一 5 不起作用 如果没有字母数组 如何快速打印出字母表中的第 n 个字母 我天真的解决方案是这样的 letters A B C D E F G H I J K L M N O P Q R
  • Python 有哪些 SOAP 客户端库,它们的文档在哪里? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 无法写入文本文件

    我正在运行一些测试并需要写入文件 当我运行测试时open file r 不写入文件 测试脚本如下 class GetDetailsIP TestGet def runTest self self category PTZ try This
  • Pandas 数据框列总和并收集结果

    给定以下数据框 import pandas as pd p1 name willy age 11 interest Lego p2 name willy age 11 interest games p3 name zoe age 9 int
  • PySide2/QML 填充 Gridview 模型/委托并为其设置动画

    我是 QML 的新手 正在寻求以下几点帮助 如何基于 TextField 输入 如 Regex 通过 PySide2 过滤 Gridview 模型中的 QAbstractListModel 数据 标题 如何在鼠标悬停时为 Gridview
  • 如何在这个可嵌套的 For 循环中实现 Robot Framework 风格的变量?

    我在 Robot Framework 中见过很多 嵌套 For 循环 主要是创建一个内部带有 For 循环的关键字 然后在另一个 For 循环中调用该关键字 我使用 Python 2 7 13 制作了一个可嵌套的 For 循环 但因为它主要
  • 单个函数的 Numpy 均值和方差?

    使用 Numpy Python 是否可以从单个函数调用返回均值 AND 方差 我知道我可以单独做它们 但是计算样本标准差需要平均值 因此 如果我使用单独的函数来获取均值和方差 则会增加不必要的开销 我尝试在这里查看 numpy 文档 htt
  • 当前异常上下文掩盖了先前的错误

    以下是我在 Doug Hellman 网站上名为 masking exceptions catch py 的文件中找到的示例 我暂时无法找到链接 throws 中引发的异常将被丢弃 而 cleanup 中引发的异常将被报告 道格在他的文章中
  • Python 中的延迟求值/惰性求值

    我想延迟对类实例的成员函数的调用的评估 直到该实例实际存在 最小工作示例 class TestClass def init self variable 0 self variable 0 variable 0 def get variabl
  • 如何从已安装的云端硬盘文件夹中永久删除?

    我编写了一个脚本 在每次迭代后将我的模型和训练示例上传到 Google Drive 以防发生崩溃或任何阻止笔记本运行的情况 如下所示 drive path drive My Drive Colab Notebooks models if p
  • 将 sudo 与 Python 脚本结合使用

    我正在尝试编写一个小脚本来在每次执行脚本时安装 VirtualBox 共享文件夹 我想用Python 来做这件事 因为我正在尝试学习它来编写脚本 问题是我需要特权才能启动挂载命令 我可以将脚本作为 sudo 运行 但我更喜欢它自己创建 su

随机推荐

  • Mybatis的常用注解

    加载配置文件的时候 绝对路径和相对路径的写法都不太好用 我们经常使用的两种方法第一种就是使用类加载器 他只能读取类路径的配置文件 第二种就是使用ServletContext对象的getRealPath 函数 mybatis的常用注解 1 与
  • jsp+servlet+ajax实现登录

    该案列使用jsp servlet ajax实现登录 页面简洁大方 弹框都是封装的插件 整体案列采用三层的模式 链接数据库方面用的是dbcp的链接池 数据库时mysql 运行效果如下图 下载地址 jsp servlet ajax实现登录案例
  • c++(对象赋值与拷贝构造函数)

    对象赋值 同一个类的对象之间可以相互赋值 默认情况下 进行的是对象成员之间的复制 也称为 按位复制 或 浅复制 当类的数据成员中没有指针类型的变量时 直接对两个对象进行赋值没有问题 但是一旦类的数据成员含有指针变量 那么直接对这两个对象进行
  • MySQL常用基础 - 小白必看(二)

    MySQL数据库基本操作 一 DDL 概念 是一个数据定义语言 该语言部分包括 1 对数据库的常用操作 创建数据库 1 create database 数据库名 直接删除 2 create database if not exists 数据
  • 《effective java》中关于解决构造函数/方法签名包含大量参数的解决方法

    针对构造方法 重叠构造器模式 重叠构造器模式是一种编程中的反模式 指的是一个类有多个构造函数 每个构造函数都有不同数量的参数 从而可以根据不同的情况创建对象 这种方式会导致代码可读性和可维护性降低 因为构造函数过多 参数顺序容易混淆 Jav
  • 使用 Composer 安装 JWT 失败错误 The "https://packagist.org/packages.json" file could not be downloaded 解决方案

    错误信息 The https packagist laravel china org packages json file could not be downloaded SSL operation failed with code 1 O
  • Redis3.0集群方案分析

    在Redis3 0集群出来之前 大家都对作者antirez寄予厚望 因为Redis从来没有让我们失望过 现在Redis3 0集群出来了 网上出了很多评论文章 都说他的功能多么强大 包括下面这张图是彻底把我欺骗了 等到我把Redis3 0客户
  • Qmake VS Cmake 对比讲解

    用 cmake 构建Qt工程 对比qmake进行学习 cmake vs qmake qmake 是为 Qt 量身打造的 使用起来非常方便 cmake 使用上不如qmake简单直接 但复杂换来的是强大的功能 内置的 out of source
  • 一点浩然气,千里快哉风

    到英国访学一年 也认识了一些其他来自国内的访问学者 平时周末也经常一起徒步聚餐 从今年1月份以来 基本每个月有一个小伙伴回国 随着身边的小伙伴越来越少 以及自己也要不久回国了 心里不免有些人走茶凉 曲终人散的落寞 总体上 来英国的访问学者很
  • 【模板】快速排序

    题目链接 洛谷 P1177 模板 快速排序 1960年由查尔斯 安东尼 理查德 霍尔 Charles Antony Richard Hoare 缩写为C A R Hoare 提出 如下图所示 快速排序的执行流程为 从序列中选择一个轴点元素
  • C/C++ getcwd 获取项目的运行路径

    在Linux下做QT项目时 需要获取项目的运行路径 于是用getcwd函数进行获取 然后在Windows下进行测试 发现获取到的是程序的项目路径 即代码文件路径 然后再Linux QT中测试 获取到的又是运行路径 这就很纳闷了 经过再三测试
  • 2-1、Lua数据结构

    2 1 Lua数据结构 文章目录 2 1 Lua数据结构 1 数组 2 矩阵和多维数组 3 链表 4 队列和双向队列 5 集合和包 6 字符串缓冲 table是Lua中唯一的数据结构 其他语言所提供的数据结构 如 arrays record
  • python crop函数-图片裁剪函数

    crop 函数的参数形式是 x1 y1 x2 y2 这个元组是作为一个参数的 参考代码 from PIL import Image im Image open d 22 jpg im1 im crop im size 0 4 im size
  • linux中进入目录命令是什么,linux进入目录的命令是什么

    linux进入目录的命令是 cd 该命令的作用是切换至指定目录下 语法格式为 cd dirName 参数 dirName 表示要切换的目标目录 可以是绝对路径或相对路径 若目录名称省略 则变换至使用者的home目录 本教程操作环境 Red
  • bp神经网络时间序列预测,bp神经网络有几个阶段

    什么是BP神经网络 BP算法的基本思想是 学习过程由信号正向传播与误差的反向回传两个部分组成 正向传播时 输入样本从输入层传入 经各隐层依次逐层处理 传向输出层 若输出层输出与期望不符 则将误差作为调整信号逐层反向回传 对神经元之间的连接权
  • SwiftUI接入穿山甲开屏广告

    研究了一下SwiftUI怎么接入穿山甲 基于穿山甲sdk版本 4 7 0 8 例子地址 1 首先要先注册一个账号 穿山甲地址 在广告变现 gt 流量 gt 应用中创建一个应用并记录下应用ID 在广告变现 gt 流量 gt 代码位创建一个代码
  • vue-excel导出-单表头,多表头导出,Export2Excel.js Blob.js

    效果如图 一级导出 二级导出 如下图 三级导出 Export2Excel js Blob js 等 安装依赖 npm install S file saver npm install save xlsx 0 10 0 npm install
  • 蓝牙ble tips3-MAC地址

    和计算机网络IP地址类似 BLE也会有属于自己的一个地址 BLE设备地址 蓝牙地址 也称作 Bluetooth MAC Media Access Control 地址 是一个48位的唯一硬件标识符 用于在蓝牙设备之间建立连接和通信 它由全球
  • TRMF 辅助论文:最小二乘法复现TRMF

    1 目标函数 总 论文笔记 Temporal Regularized Matrix Factorization forHigh dimensional Time Series Prediction UQI LIUWJ的博客 CSDN博客 1
  • 蓝桥杯第23天(Python)(疯狂刷题第6天)

    题型 1 思维题 杂题 数学公式 分析题意 找规律 2 BFS DFS 广搜 递归实现 深搜 deque实现 3 简单数论 模 素数 只需要判断到 int sqrt n 1 gcd lcm 快速幂 位运算移位操作 大数分解 分解为质数的乘积