二叉树
二叉搜索树
特点:一般用中序遍历
性质:中序遍历会得到一个单调递增的序列
leetcode 2476
中序遍历得到递增序列,对于每个询问做一次二分查找,时间复杂度O(n*logn)
作者文章归档:aboom
特点:一般用中序遍历
性质:中序遍历会得到一个单调递增的序列
leetcode 2476
中序遍历得到递增序列,对于每个询问做一次二分查找,时间复杂度O(n*logn)
https://codeforces.com/problemset/problem/2078/D
有 n
对门,每对门都有左、右两个通道。初始时,左右通道各有一个人,并且这些人不能中途切换通道。
当我们通过第 i
对门的某个具体门(左或右)时:
* 如果是加法门 (+ a
):会额外产生 a
个新的人。该通道内原先存在的人数不变。
* 如果是乘法门 (x a
):假设该通道在操作前有 P
个人,操作后会变为 P * a
个人。这相当于原有的 P
个人每人变成了 a
个人中的一个“基底”,同时额外新增了 (a-1) * P
个人。
规则核心:在每一对门的操作完成后,所有在这一步新产生的
https://codeforces.com/problemset/problem/339/D
题意:2^n个数组成的数组,m次单点修改带查询。数组计算规则是相邻两数先做或运算得到新数组,新数组相邻两数再做异或运算,... ,最后得到一个数即为查询结果。
看到单点修改首先想到线段树或树状数组,再观察到2^n形式正好是一颗满节点的线段树,运算选择取决于线段树层数,叶子节点上一层或运算,再上一层异或,...,询问结果实际是问根节点的值
因此在单点修改的线段树模板上只需要根据层数切换update的方式即可
import sys
n, m = map(int, sys.stdin.readline
用python重写下线段树模板,线段树的记忆点在于脑子里要有线段树,特点是自顶向下构建
class segment_tree:
def __init__(self, nums):
n = len(nums)
self.nums = nums
self.tree = [0] * 4 * n
self.tag = [0] * 4 * n
def update(self, root):
self.tree[root] = self.tree[root * 2] + self.tree[root * 2
题意:从起点按序输出唯一路径
python写一直re,后面发现需要使用sys.setrecursionlimit(int(2 * 10**5))扩大python默认递归深度限制,以达到题目要求
邻接表建图用字典的setdefault方法初始化空列表最简洁
import sys
sys.setrecursionlimit(int(2 * 10**5))
n = int(input())
vised = {}
graph = {}
in_degree = {}
for _ in range(n):
c1, c2 = map(int, input().split())
graph.s
openmmlab系列框架在2023年全面进入2.0时代,官方把自监督mmselfsup和分类mmclassification两个项目合并成mmpretrain。
openmmlab 2.0系列底层是有一些变化的,最大变化是从mmcv中抽离出功能更强大的mmengine。新的项目我还没仔细看过,目前简单理解就是轮子更多、用的更爽。
从mmpretrain这种更上层的应用项目看,基本没什么变化。底层封装的完善,上层应用调包,皆大欢喜。
如果熟悉openmmlab系列构建方式,diy上层应用是比较简单的。当然必须会用pytorch,mm是对pytorch的包装和扩展,对py
TAO表示train、adapt、optimize,TAO Toolkit是nvidia TAO框架的低代码版本,使用者无需专业的AI知识即可轻松构建高准确度的AI模型,在英伟达设备上做到训练部署一条龙。
流程参考快速上手tao toolkit
1、注册英伟达开发者账号,略。
2、去ngc官网ngc官网目录 右上角登陆,选用英伟达账号登陆。
3、回到ngc首页,右上角点卡自己的账号,点Setup,此时里面会出现Generate API Key选项卡,点击Get API Key进入。
4、点击Generate API Key,下方会生成专属Key值,这个Key需要记下来,以后都用这个Key登
python环境:anaconda base环境,python版本3.9.7
CMake版本:3.24.1 cmake下载
opencv版本:4.6.0
vs版本:2019社区版
cuda Toolkit版本:11.3.1 cuda-toolkit下载,nvcc -V显示版本
cuDNN版本:8.2.1 cuDNN下载
英伟达cuda相关下载需要注册英伟达账号,vs2019和anaconda安装省略。
cuda toolkit和cuDNN版本需要对应,cuda11的试了几个应该都没问题,再老的不清楚能不能用。vs版本老一些没关系。
从仓库下载指定版本opencv,需要安装git(git下载)
django settings中设置USE_TZ = True,这是django官方推荐的方法,也是django5.0之后默认的设置。
当启用对时区的支持时,Django 在数据库中以 UTC 为单位存储日期时间信息,在内部使用具有时区的日期时间对象,并在模板和表单中将其转换为最终用户的时区。
如果用户