- 博客(137)
- 资源 (9)
- 收藏
- 关注
原创 字符串哈希简单理解
取模的数用2^64,这样直接用unsigned long long存储,溢出的结果就是取模的结果。:将字符串看成P进制数,P的经验值是131或13331,取这两个值的冲突概率低。观察这个函数定义的P进制数和十进制数一样,左边的权重越来越大。字符串哈希 —— 模板题 AcWing 841. 字符串哈希。那么对h[l,r]这个区间的哈希值如何取呢?
2024-03-06 11:10:01
328
原创 c 函数 memset使用注意事项
当你使用memset对一个int数组使用-1进行填充时,由于-1在内存中以补码形式表示,对于一个32位的系统,-1的二进制表示为。这里,str是指向要填充的内存块的指针,c是要设置的值(虽然是int类型,但实际上只会使用该值的低8位),n是要设置的字节数。那么其中关键在于会对要填充的内存块每一个字节8位都存上 c 里面的低8位内容。对于一个32位系统,这个值实际上是16843009,而不是1。因此,当memset用-1填充时,它实际上将每个字节都设置为。然而,当尝试用1来填充时,情况就不同了。
2024-03-05 12:31:44
395
原创 ACWING 高精度-加减乘除 791 - 794
读取字符串的高精度数字,然后用int数组存上,通过最基础的每位加减乘除和进位等操作完成。下方给出了所有的操作函数,注意函数的所有输入均为vector 的数组,并且数组存储是从数的低位开始存1000 = [0,0,0,1],和正常存储相反,这是为了便于操作。
2023-05-12 17:57:53
798
原创 计算机体系结构总结:内存一致性模型 Memory consistency Model
存储一致性是为了保证多线程背景下的访存顺序,多线程的语句是可以交错执行,使得顺序不同产生不同的执行结果。下面P2的输出结果可能是什么?P1, P2两个线程的语句是可以交叉执行的,比如1a, 2a, 2b, 1b;一个线程内的语句,也是可以混序执行的,如P1: 1b, 1a,这取决于编译器和执行情况。所以,P2 print B, print A,会有0 0, 2 1, 0 1, 2 0四种结果。若不控制mem consist,P2 print的B A会千奇百怪,甚至会有B 2, A 0。
2023-05-05 16:51:40
861
原创 稀疏矩阵存储格式总结
稀疏矩阵是指矩阵中的元素大部分是0的矩阵,实际问题中大规模矩阵基本上都是稀疏矩阵,很多稀疏度在90%甚至99%以上,大规模的稀疏造成了大量无效数据的计算和存储资源占用,也无法有效的载入有限内存计算。因此我们需要有高效的稀疏矩阵存储格式。本文总结几种典型的格式:COO,CSR,DIA,ELL,HYB,HASH,BSR。
2023-04-28 23:07:37
2095
原创 ACWING/1824. 钻石收藏家
还可以用空间换时间的方案,时间O(n),具体解法如下注释,较简单。输出贝茜可以在展示柜中展示的钻石最大数量。此方案的复杂度为排序的O(nlogn)决定。
2023-02-19 22:58:56
387
原创 ACWING/2004. 错字
题目重点:条件1:对于字符串的任意前缀,所包含的 ( 的数目都不少于 ) 的数目。条件2:输入的字符串满足:最多只修改一个字符,即可变为平衡括号字符串。因此本题限制在了只需要变化一个括号就一定能序列匹配!结题思路:分类:1.左右括号数R L相同;2.右括号需要转化为左括号:R=L+2;左括号需要转化为有括号:L=R+2类型①:输出0直接类型②:记录每个位置的从左到右 左右括号分别的前缀和,由条件1可得:从左向右搜索第一个左括号比右括号少的右括号位置, 则位置及其之前的任意一个右括号改变为左括号才能满足条件1
2023-02-18 19:47:49
147
原创 ACWING\1912. 里程表
110∼133 之间的所有数字中,有趣数字为:110,112,113,114,115,116,117,118,119,121,122,131,133。数据范围是最大16位数,必须long long才能hold住。共一行,包含两个整数 X 和 Y。输出奶牛们在旅途中发出叫声的次数。
2023-02-16 20:10:49
125
原创 AXI-Stream 学习笔记
AXI4 是ARM公司提出的一种片内总线,描述了主从设备之间的数据传输方式。主要有AXI4_LITE、AXI4_FULL、AXI4_STREAM三种。AXI4_LITE:不支持突发传输,一般用于小数据量的IP初始化和嵌入式设备数据传输。AXI4_FULL:可称为AXI4,支持突发传输,突发长度为1~256。AXI4_STREAM:流数据,丢弃了地址项,用于高速数据传输。AXI-Stream顾名思义是用来传输数据流的,如图像输入,高速AD等,这种数据流的处理一般是和DMA一并使用的。
2023-02-13 17:41:13
2863
原创 AXI-Lite 学习笔记
AXI4 是ARM公司提出的一种片内总线,描述了主从设备之间的数据传输方式。主要有AXI4_LITE、AXI4_FULL、AXI4_STREAM三种。AXI4_LITE:不支持突发传输,一般用于小数据量的IP初始化和嵌入式设备数据传输。AXI4_FULL:可称为AXI4,支持突发传输,突发长度为1~256。AXI4_STREAM:流数据,丢弃了地址项,用于高速数据传输。
2023-02-13 17:36:11
1872
原创 You‘ve successfully authenticated, but GitHub does not provide shell access.问题解决
然后使用项目在git push 的时候将还是会提示输入账号密码。并且现在 git 也不允许 http 连接,所以提供账号密码也没办法 push。这时候只看到successfully以为已经配好了密钥,以后项目都可以连接github了,但其实后面。注意这里并非普通的http格式添加远程仓库。命令生成的秘钥已经配置,而使用。告知了不可以使用shell访问。已经配置了本地的git 通过。
2023-02-07 16:51:01
11374
原创 Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks ,2015 论文阅读笔记
这篇文章的贡献在于对CNN FPGA加速器的技术 (例如循环平铺和转换)优化,同时进行了定量分析计算吞吐量和片内外I/0带宽和建模通过roof-line模型搜索加速器硬件参数设计空间中最优的方案,最后通过此建模方案设计了一个加速器,获得当时最优性能密度的CNN加速器。我个人读了之后觉得其值得学习亮点如下:利用polyhedral-based 数据依赖分析方法来优化现有常用的加速器技术(Tiling、Unroll、pipeline和loop transformation)
2022-12-01 16:21:06
1072
1
原创 Las Vegas 与回溯组合法解八皇后问题
该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。为了衡量不同stepVegas从哪一行开始进行回溯效果最好,引入一个遍历节点消耗的概念:即放置一次皇后作为一次搜索的节点。如此是在前stepVegas行的皇后是概率的选取皇后位置,而第stepVegas行后是有回溯法确定的选择。遍历n行,每一行尝试随机放置一个可以放置的位置,如可放置皇后的位置有{1,3,5,7},从其中随机挑一个。
2022-11-29 11:30:00
843
原创 leetcode 856. 括号的分数
给定一个平衡括号字符串 S,按下述规则计算该字符串的分数:() 得 1 分。AB 得 A + B 分,其中 A 和 B 是平衡括号字符串。(A) 得 2 * A 分,其中 A 是平衡括号字符串。
2022-10-09 17:48:27
258
原创 LeetCode777. 在LR字符串中交换相邻字符
在一个由 ‘L’ , ‘R’ 和 ‘X’ 三个字符组成的字符串(例如"RXXLRXRXL")中进行移动操作。一次移动操作指用一个"LX"替换一个"XL",或者用一个"XR"替换一个"RX"。现给定起始字符串start和结束字符串end,请编写代码,当且仅当存在一系列移动操作使得start可以转换成end时, 返回True。
2022-10-04 15:17:45
321
原创 LeetCode面试题 17.09. 第 k 个数
有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。
2022-09-28 12:06:40
175
原创 面试题 17.19. 消失的两个数字(妙用异或)
给定一个数组,包含从 1 到 N 所有的整数,但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗?以任意顺序返回这两个数字均可。
2022-09-27 12:35:30
253
原创 LeetCode146. LRU 缓存实现(HashMap+双向链表)【重点数据结构】
在C语言实验的很多代码中都会使用到LRU最近最少使用 算法,如在操作系统中对空闲区域的调度,同时算法一般还伴随着对操作读写删操作O(1)时间复杂度要求,以提高系统相应速度。
2022-09-26 17:35:46
499
原创 leetCode1652. 拆炸弹
你有一个炸弹需要拆除,时间紧迫!你的情报员会给你一个长度为 n 的 循环 数组 code 以及一个密钥 k。为了获得正确的密码,你需要替换掉每一个数字。所有数字会 同时 被替换。如果 k > 0 ,将第 i 个数字用 接下来 k 个数字之和替换。如果 k < 0 ,将第 i 个数字用 之前 k 个数字之和替换。如果 k == 0 ,将第 i 个数字用 0 替换。
2022-09-24 11:20:58
147
原创 669. 修剪二叉搜索树(经典剪枝)
给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。可以证明,存在 唯一的答案。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。
2022-09-22 10:42:29
102
原创 Fat Tree 分析
本文是源于USTC Advance Computer Network 的课程内容做的总结本文将分析Fat Tree的 拓扑结构、编址方案和路由算法三个方面。
2022-09-20 11:42:17
4724
1
原创 827. 最大人工岛
给你一个大小为 n x n 二进制矩阵 grid。最多 只能将一格 0 变成 1。返回执行此操作后,grid 中最大的岛屿面积是多少?岛屿 由一组上、下、左、右四个方向相连的 1 形成。
2022-09-18 10:15:51
154
原创 687. 最长同值路径
给定一个二叉树的 root ,返回 最长的路径的长度 ,这个路径中的 每个节点具有相同值。这条路径可以经过也可以不经过根节点。两个节点之间的路径长度 由它们之间的边数表示。
2022-09-02 20:11:32
136
原创 946. 验证栈序列
给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false。
2022-08-31 17:49:36
84
原创 172. 阶乘后的零
中质因子 5 的个数等于 [1,n] 的每个数的质因子 5 的个数之和,我们可以通过遍历 [1,n]的所有 5 的倍数求出。尾零的数量即为因子 10 的个数,而 10=2×5,因此转换成求 n!= n * (n - 1) * (n - 2) * …n分别贡献i个因子5.如5、10、15都只会贡献1个因子,而25会贡献5*5两个因子。由于质因子 5 的个数不会大于质因子 2 的个数,我们可以仅考虑质因子 5 的个数。继续优化发现,[1,n]的所有 5 的倍数的数由5、5。给定一个整数 n ,返回 n!...
2022-08-28 21:57:27
117
原创 ACWING/1977. 信息中继
因为每个牛只能单项传播,故能够成一个或多个图,若一个图中存在循环,则此图中所有牛都会陷入循环,否则一定为一棵树。利用并查集做(并查集的同一集合特性,子节点更新都指向根节点降低查找复杂度)因此可以利用并查集的特性解决。...
2022-08-26 11:00:32
104
原创 1224. 最大相等频率
给你一个正整数数组 nums,请你帮忙从该数组中找出能满足下面要求的 最长 前缀,并返回该前缀的长度:从前缀中 恰好删除一个 元素后,剩下每个数字的出现次数都相同。如果删除这个元素后没有剩余元素存在,仍可认为每个数字都具有相同的出现次数(也就是 0 次)。...
2022-08-18 21:11:54
99
原创 ACWING/4262. 空调
拟求得arr数组全0,则其差分数组也一定全0 :原因为,差分数组的实质为相邻两个数的差值,由于第一个数实际是和0做差分,则可以理解为。题意可以转化为:将两个温度数组求差得到arr数组,求对区间加一或者减一的最少操作次数得到全0的数组。按照如此的操作方案,使得差分数组归0的操作次数为max(正数和,|负数和|)差分:对于数列 a,其第 i 个元素和第 i - 1 个元素的差称为。...
2022-08-11 15:38:47
359
1
原创 1413. 逐步求和得到正数的最小值
给你一个整数数组 nums。你可以选定任意的 正数 startValue 作为初始值。你需要从左到右遍历 nums 数组,并将 startValue 依次累加上 nums 数组中的值。请你在确保累加和始终大于等于 1 的前提下,选出一个最小的 正数 作为 startValue。...
2022-08-09 15:30:48
160
原创 761. 特殊的二进制序列
给定一个特殊的二进制序列 S,以字符串形式表示。定义一个操作 为首先选择 S 的两个连续且非空的特殊的子串,然后将它们交换。(两个子串为连续的当且仅当第一个子串的最后一个字符恰好为第二个子串的第一个字符的前一个字符。)在任意次数的操作之后,交换后的字符串按照字典序排列的最大的结果是什么?...
2022-08-09 15:16:49
149
ACM常⽤模板(+模板题)(基础)
2021-05-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人