自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(136)
  • 资源 (9)
  • 收藏
  • 关注

原创 1403. 非递增顺序的最小子序列

解释:子序列 [7,7] 的和为 14 ,不严格大于剩下的其他元素之和(14 = 4 + 4 + 6)。与子数组不同的地方在于,「数组的子序列」不强调元素在原数组中的连续性,也就是说,它可以通过从数组中分离一些(也可能不分离)元素得到。解释:子序列 [10,9] 和 [10,8] 是最小的、满足元素之和大于其他各元素之和的子序列。给你一个数组 nums,请你从中抽取一个子序列,满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。输入:nums = [4,4,7,6,7]输出:[7,7,6]..

2022-08-04 15:27:35 76

原创 Acwing/3359. 更多奇怪的照片

代码】Acwing/3359. 更多奇怪的照片。

2022-08-04 15:05:09 118

原创 ACWING/2004. 错字

题目重点:条件1:对于字符串的任意前缀,所包含的 ( 的数目都不少于 ) 的数目。条件2:输入的字符串满足:最多只修改一个字符,即可变为平衡括号字符串。因此本题限制在了只需要变化一个括号就一定能序列匹配!结题思路:分类:1.左右括号数R L相同;2.右括号需要转化为左括号:R=L+2;左括号需要转化为有括号:L=R+2类型①:输出0直接类型②:记录每个位置的从左到右 左右括号分别的前缀和,由条件1可得:从左向右搜索第一个左括号比右括号少的右括号位置, 则位置及其之前的任意一个右括号改变为左括号才能满足条件1

2022-06-21 15:02:26 106 2

原创 ACWING2013. 三条线

输入样例:输出样例:样例解释y=0,x=1,y=4 可满足将所有奶牛位置覆盖。首先选择一个点,他有两种选择,用x或者y方向的线,选择方向后,将此方向的所有点给删除然后将未删除的点中随机选一个,再区分x或y方向,重复第2步然后重复第三步前四步完成后,删除的点就分别有三条线穿过了,此时判断是否还有剩下的即可得出结果若还有剩下点说明此方案不成立,则回溯旋转不同方向如此一共有8种选择线的方向组合,如下图代码思路:用dfs递归三层来实现用一个Struct来装坐标和记录点是否删除的状态用数组来记录所有点为了防止每次

2022-06-19 20:48:38 106

原创 ACWING 2023. 连接奶牛

数据范围输入样例:输出样例:样例解释共有两条不同路线 1−2−4−3 和 3−4−2−1。题目关键点:- 所有奶牛的位置互不相同,且都不在原点。- 每头奶牛的位置处恰好转向一次- 在不改变方向的情况下通过任意奶牛的位置任意次数- 只沿平行于坐标轴的方向行走,即只能向北,向南,向东或向西行走则是求0,0 -> 点集的全部排列 -> 0,0通过dfs 搜索n层,每层代表n个位置上的点选择注意:此处n的大小只有10以内,全排复杂度可以接受...

2022-06-06 15:32:41 202

原创 ACWING\2032. 过度种植 (容斥原理与扫描线)

输入样例:20 5 4 12 4 6 2输出样例:20题解题目解读:注意题目中给出 “轴向对齐”(即具有垂直和水平边)的矩形 的设定,若把每个给出的矩形区域面积计算,则交集出x、y方向矩形为重复计算的面积,这里即计算多个矩形重合后的尽占地面积。方法一:扫描线 区间求交如下图,以x方向将每个出现x坐标平行于y轴画一条线,若有n个矩形,则出现2n条线,将整个草地划分为2n-1个区域。每个区域内若存在种草的矩形,则一定是x方向的长度相同,只在y方向上考虑是否出现区间交错。首先处理x方.

2022-05-27 15:08:00 247

原创 ACWING\1927. 自动补全

ACWING\1927. 自动补全数据范围1≤W≤300001≤N≤100001≤Ki≤W输入样例:10 3dabbaabdaaaaaaaaababcacdadba4 a2 da4 da输出样例:31-1样例解释a 的自动补全为 aa,aaa,aab,ab,abc,ac,第四个为 ab,在词典中排第 33 个。da 的自动补全为 daa,dab,dadba,第二个为 dab,在词典中排第 11 个。da 不存在第四个自动补全。题解:排序 二分

2022-05-25 14:30:38 141

原创 ACWING/4441. 谎牛计数

输入样例1:2G 3L 5输出样例1:0样例1解释有可能没有奶牛在撒谎。输入样例2:2G 3L 2输出样例2:1题解枚举将每一个牛的信息都存入一个结构体,对结构体的位置信息做排序位置信息从小到大遍历求解,在每个位置计算全局的说谎信息数量,与结果作比较去最小值设置变量 suml 表示当前位置加前面的所有L信息数量设置变量 sumg 表示当前位置加前面所有的G信息数量设置变量 n_l n_g 分别表示两种个信息总数枚举方案如下:..

2022-05-19 17:28:22 308

原创 ACWING/1986. 镜子

输入样例:5 6 23 0 /0 2 /1 2 /3 2 \1 3 \输出样例:4样例解释农场的平面图如下所示,其中H 表示约翰的房子,B 表示牛棚:3 .\.....2 //.\..B1 .......0 H../... 0123456通过改变 (3,2)处的围栏朝向,就可以使约翰看到点 (a,b),如下所示:3 .\.....2 //./--B1 ...|...0 H--/... 01234563 .\.....2 //./--B1 ....

2022-05-02 13:35:35 295

原创 Chisel 实践二维脉动阵列计算复数矩阵乘法

脉动阵列,其核心概念是让数据在运算单元的阵列中进行流动,减少访存的次数,并且使得结构更加规整,布线更加统一,提高频率。基于二维脉动阵列的矩阵乘法计算一种实现思想如下引用的文章已经讲清楚,本文重在用Chisel去模拟实践二维脉动阵列的复数矩阵乘法,阅读本文前请阅读如下的前置文章:基于二维脉动阵列的矩阵乘法

2022-04-29 19:34:47 679 1

原创 ACWING/1995. 见面与问候

数据范围1≤B,E≤50000输入样例:4 53 L5 R1 L2 R4 R1 L3 L4 R2 L输出样例:3样例解释贝茜和艾希在时间 7,9,13 碰面打招呼。题解模拟方法解决首先将输入固定化到两个index数组,index数组存储每一秒牛所在的位置,index记录长度为最长运动时间那头牛决定,0s的时候位置在0(注意这是因为他们的速度都是1单位/s)然后判断两头牛在每个时间节点所处的位置是否相同此外注意特例初始位置两头牛的相遇不算注意两头相遇且并排走.

2022-04-27 13:28:21 115

原创 基于二维脉动阵列的矩阵乘法

脉动阵列,其核心概念是让数据在运算单元的阵列中进行流动,减少访存的次数,并且使得结构更加规整,布线更加统一,提高频率。

2022-04-27 10:55:11 1101

原创 HLS / Chisel 实践CORDIC高性能计算复数平方根

tongg CORDIC算法实现复数求根

2022-04-21 16:49:22 362

原创 HLS / Chisel 利用CORDIC双曲系统实现平方根计算

CORDIC(坐标旋转数字算法)是一种计算三角、双曲和其他数学函数的数字算法,每次运算均产生一次结果输出。这使我们能够根据应用需求调整算法精度;增加运算迭代次数可以得到更精确的结果。CORDIC 是只使用加法、减法、移位和查找表实现的简单算法,这种算法在FPGA中实现效率高,在硬件算法实现中经常用到。本文主要在此下文章介绍CORDIC双曲系统的基础上介绍平方根计算。HLS / Chisel 实现CORDIC算法双曲系统原理在CORDIC算法双曲系统的向量模式中,最终的输出结果如下:{xn=Kn

2022-04-21 15:26:22 1004

原创 HLS / Chisel 实现CORDIC算法双曲系统

CORDIC(坐标旋转数字算法)是一种计算三角、双曲和其他数学函数的有效方法。它是一种数字算法,每次运算均产生一次结果输出。这使我们能够根据应用需求调整算法精度;增加运算迭代次数可以得到更精确的结果。

2022-04-18 14:34:00 973

原创 ACWING\3767. 最小的值

输入样例1:51 1 1 0 00 1 1 1 1输出样例1:3输入样例2:30 0 00 0 0输出样例2:-1输入样例3:41 1 1 11 1 1 1输出样例3:-1输入样例4:91 0 0 0 0 0 0 0 10 1 1 0 1 1 1 1 0输出样例4:4贪心从题目可以推导出,a[i]=0,b[i]=0与a[i]=1,b[i]=1的两种一定对∑i=1,n a[i]×p[i] > ∑i=1,n b[i]×p[i]是没有贡.

2022-04-14 19:57:16 179

原创 ACWING\3764. 三元数异或

输入样例:4522222521211129220222021输出样例:1111111111110001021111110111011110111010题解(贪心)两个数的最高位一定都是1.始终使得第一个数a为max.那么从高位遍历到最低位做计算,每次得到异或复原的两个数如果可以相等就相等,使得a可以尽量小若一定复原的两个数有一个大,就将大的给a。注意:关键点是此时注定了a一定大于b因此接下来遍历的所有异或复原都使得给a的数最小..

2022-04-13 20:00:37 198

原创 HLS / Chisel 实现CORDIC算法高性能复数除法

CORDIC(坐标旋转数字算法)是一种计算三角、双曲和其他数学函数的数字算法,每次运算均产生一次结果输出。这使我们能够根据应用需求调整算法精度;增加运算迭代次数可以得到更精确的结果。CORDIC 是只使用加法、减法、移位和查找表实现的简单算法,这种算法在FPGA中实现效率高,在硬件算法实现中经常用到。论文[1]介绍了一种通过CORDIC算法中CR、CV、LV三种模式拆分高性能计算复数除法的方法,本文将使用Chisel 实现该方法,这里默认在以下几篇文章的CORDIC原理基础之上完成。HLS / Chi

2022-04-13 19:34:46 953

原创 ACWING\3777. 砖块

n 个砖块排成一排,从左到右编号依次为 1∼n。每个砖块要么是黑色的,要么是白色的。现在你可以进行以下操作若干次(可以是 0 次):选择两个相邻的砖块,反转它们的颜色。(黑变白,白变黑)你的目标是通过不超过 3n 次操作,将所有砖块的颜色变得一致。输入格式第一行包含整数 T,表示共有 T 组测试数据。每组数据第一行包含一个整数 n。第二行包含一个长度为 n 的字符串 s。其中的每个字符都是 W 或 B,如果第 i 个字符是 W,则表示第 i 号砖块是白色的,如果第 i 个字符是 B,则表示第

2022-04-12 10:45:46 236

原创 357. 统计各位数字都不同的数字个数

357. 统计各位数字都不同的数字个数给你一个整数 n ,统计并返回各位数字都不同的数字 x 的个数,其中 0 <= x < 10n 。示例 1:输入:n = 2输出:91解释:答案应为除去 11、22、33、44、55、66、77、88、99 外,在 0 ≤ x < 100 范围内的所有数字。 示例 2:输入:n = 0输出:1提示:0 <= n <= 8解题思路本题本质就是用不同 0-9 的数字组合成各位数字都不同的数字当 n =

2022-04-12 10:36:31 287

原创 HLS / Chisel 实现CORDIC算法计算除法(线性坐标系向量模式LV)

通过cordic算法的LV线下坐标系向量模式计算实数除法

2022-04-10 17:59:48 978

原创 HLS / Chisel 实现CORDIC算法计算反三角函数(圆坐标系向量模式)

一个二维矢量v可以使用笛卡儿坐标系统(x,y)或极坐标系统(r,θ)来表示,对于极坐标系r是半径坐标(矢量的长度)和θ是角度坐标。给定一个用笛卡尔坐标系表示的数(x, y),我们使用CORDIC算法的**圆坐标系向量模式**可以计算它的角度和幅度坐标,即,将它转换成极坐标形式$(\theta, r)$,同时这个$\theta$就是反三角函数的值$\theta = arctan(y/x)$。

2022-04-05 17:15:18 1697

原创 ACWING 3774. 亮灯时长(前缀和 + 模拟 + 贪心)

输入样例:33 104 6 72 121 102 73 4输出样例:896前缀和 + 模拟 + 贪心模拟在每个时间段插入点首先计算关灯和开灯时间的前缀和那么奇数时间段一定是开灯,偶数段一定是关灯当在每一个时间段插入时,贪心选择当前时间段插入后关灯的时间一定是1,开灯的时间为x-1在插入时间点后,一定只影响当前时间段后面的所有时间段,且他们的开关灯属性交换,原来开灯变为关灯,关灯变为开灯为了快速计算插入后,后面时间段的所有开灯的时间段,即前缀和来..

2022-04-04 17:14:38 430

原创 HLS / Chisel 实现CORDIC算法计算三角函数(圆坐标系旋转模式)

CORDIC(坐标旋转数字算法)是一种计算三角、双曲和其他数学函数的有效方法。它是一种数字算法,每次运算均产生一次结果输出。这使我们能够根据应用需求调整算法精度;增加运算迭代次数可以得到更精确的结果。CORDIC是只使用加法、减法、移位和查找表实现的简单算法,这种算法在FPGA中实现效率高,在硬件算法实现中经常用到。

2022-04-04 11:24:36 1408

原创 前缀和与差分

目录前缀和差分二维差分前缀和前缀和:对于数列 a,其第 1, 2, …, i 项之和,即 a[1] + a[2] + … + a[i],称为数列 a 第 i 项的前缀和sum[i]。技巧:O(1)时间求区间 [l, r] 之和,直接前缀和数组sum[r] - sum[l - 1]二维前缀和求区间 [(x1,y1), (x2,y2)] 之和,s[x2][y2]−s[x2][y1−1]−s[x1−1][y2]+s[x1−1][y1−1]差分差分:对于数列 a,其第 i 个.

2022-03-31 15:26:24 322

原创 1004. 最大连续1的个数 III

1004. 最大连续1的个数 III给定一个二进制数组 nums 和一个整数 k,如果可以翻转最多 k 个 0 ,则返回 数组中连续 *1* 的最大个数 。示例 1:输入:nums = [1,1,1,0,0,0,1,1,1,1,0], K = 2输出:6解释:[1,1,1,0,0,1,1,1,1,1,1]粗体数字从 0 翻转到 1,最长的子数组长度为 6。示例 2:输入:nums = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], K = 3输出:10

2022-03-29 14:46:30 194

原创 ACWING 3782. 点

给定一个平面上的 N 个点,请你计算所有点对之间距离的平方和。输入格式第一行包含整数 N,表示点的个数。接下来 N 行,每行包含两个整数 X,Y,表示一个点的横纵坐标。注意,不保证所有点的位置各不相同。输出格式输出所有点对之间距离的平方和。数据范围1≤N≤10^5−10000≤X,Y≤10000输入样例:41 1-1 -11 -1-1 1输出样例:32#include <iostream>using namespace std;int main(

2022-03-28 15:53:17 335

原创 Chisel 实现通用FIFO

通用 FIFO 可以定义如下:抽象数据类型抽象FIFO深度有握手信号的FIFOimport chisel3.util.log2Upimport chisel3._// 数据类型class DataBundle extends Bundle{ val a = UInt(32.W) val b = UInt(32.W)}class Fifo[T <: Data](gen: T, n: Int) extends Module { val io = IO(ne

2022-03-24 22:00:29 624 3

翻译 chisel 组合电路

电路在 Chisel 中表示为节点图。每个节点都是具有零个或多个输入并驱动一个输出的硬件运算符。上面介绍的文字是一种退化的节点,它没有输入并在其输出上驱动一个常数值。创建和连接节点的一种方法是使用文本表达式。例如,我们可以使用以下表达式来表示一个简单的组合逻辑电路:(a & b) | (~c & d)语法应该看起来很熟悉,分别表示按位与&和| -OR,并~ 表示按位非。名称a通过d 代表一些(未指定)宽度的命名线。任何简单的表达式都可以直接转换成电路树,在叶子上命名连线,在内

2022-03-24 17:06:25 123

原创 440. 字典序的第K小数字

440. 字典序的第K小数字给定整数 n 和 k,返回 [1, n] 中字典序第 k 小的数字。示例 1:输入: n = 13, k = 2输出: 10解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的数字是 10。示例 2:输入: n = 1, k = 1输出: 1提示:1 <= k <= n <= 10^9解题思路这题可以对整个字典序构建字典树,即如下所示我们可以观察到以下几

2022-03-23 18:23:20 1314

翻译 chisel的命名高级用法

从历史上看,Chisel 在可靠地捕获信号名称方面遇到了麻烦。造成这种情况的原因是(1)主要依靠反射来查找名称(2)使用@chiselName行为不可靠的宏。Chisel 3.4 引入了一个自定义的 Scala 编译器插件,它可以在声明信号名称时实现可靠和自动捕获信号名称。此外,此版本还大量使用了新的前缀 API,它可以更稳定地命名从函数调用以编程方式生成的信号。本文档解释了现在在 Chisel 中如何命名信号和模块名称。有关如何解决系统名称稳定性问题的手册示例,请参阅命名手册。编译器插件//

2022-03-22 21:49:21 332

原创 Linux chisel环境配置

环境要求CentOS7安装JDK1.8Linux 安装sbtChisel项目和Java这种类似,一般是有标准的目录结构的,对于Chisel而言,使用Scala项目构建工具sbt会很方便,所以环境要求中需要sbt工具。chisel的环境配置并不需要安装其他东西了,只需要配置sbt的项目管理依赖文件即可。这里我们以一个例子来讲解。例子下载与测试首先下载此github仓库,进入hello-world项目文件夹下,并测试sbt工具正常git clone https://github.com/sc.

2022-03-20 18:12:58 2708

原创 Linux 安装sbt

已安装JDK8CentOS7安装JDK1.8Ubuntu安装echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.listecho "deb https://repo.scala-sbt.org/scalasbt/debian /" | sudo tee /etc/apt/sources.list.d/sbt_old.listcurl -sL ".

2022-03-20 18:10:16 2837

转载 python3.6安装pycrypto,pycrytodome和crypto模块(转)

在python中要使用到crypto相关的库,但是网上的解决方法一大片,能用的没有几个,而且能安装的没有几个.为什么安装失败pycrypto,pycrytodome和crypto是一个东西,crypto在python上面的名字是pycrypto它是一个第三方库,但是已经停止更新三年了,所以不建议安装这个库;windows下python3.6安装也不会成功!解决办法这个时候pycryptodome就来了,它是pycrypto的延伸版本,用法和pycrypto 是一模一样的;所以,直接安装: pi

2022-03-17 16:58:36 345

原创 Linux pip 配置清华源

在 ~/ 下建立 .pip文件夹,cd .pip/ 后,建立 pip.conf文件,并mkdir -p /~/.pipcd /~/.pipvim pip.conf在其中写入:[global]index-url = https://pypi.tuna.tsinghua.edu.cn/simple配置好后,下载速度就起飞啦感谢🙏http://t.csdn.cn/eCwmrhttps://www.cnblogs.com/kazihuo/p/11051319.html...

2022-03-16 17:04:32 1649

原创 2044. 统计按位或能得到最大值的子集数目

2044. 统计按位或能得到最大值的子集数目难度中等70收藏分享切换为英文接收动态反馈给你一个整数数组 nums ,请你找出 nums 子集 按位或 可能得到的 最大值 ,并返回按位或能得到最大值的 不同非空子集的数目 。如果数组 a 可以由数组 b 删除一些元素(或不删除)得到,则认为数组 a 是数组 b 的一个 子集 。如果选中的元素下标位置不一样,则认为两个子集 不同 。对数组 a 执行 按位或 ,结果等于 a[0] ``**OR**`` a[1] ``**OR**`` ... ``**OR*

2022-03-15 12:11:59 231

原创 ACWING/3806. 最小化字符串

输入样例:23aaa5abcda输出样例:aaabca解答#include <iostream>#include <string.h>using namespace std;/* 字典序即查字典时的字符串顺序 去除末尾的字符,一定会变小字典序 第一个增序尾部去除会变大*/int main(){ int T; cin>>T; while(T--){ int n; .

2022-03-09 20:49:09 204

原创 2055. 蜡烛之间的盘子

2055. 蜡烛之间的盘子输入:s = "**|**|***|", queries = [[2,5],[5,9]]输出:[2,3]解释:- queries[0] 有两个盘子在蜡烛之间。- queries[1] 有三个盘子在蜡烛之间。提示:3 <= s.length <= 105s 只包含字符 '*' 和 '|' 。1 <= queries.length <= 10^5queries[i].length == 20 <= lefti <= righ

2022-03-09 20:04:00 161

原创 C++实现二分、lower_bound 和 upper_bound

二分// Return the position of an element in sorted array "A" of// size "n" with value "K". If "K" is not in "A", return// the value "n".int binary(int A[], int n, int K) { int l = -1; int r = n; // l and r are beyond array bounds

2022-03-09 10:47:17 1089

原创 nginx出现权限问题(13: Permission denied)

在error_log中查看到错误:connect() to 127.0.0.1:8888 failed (13: Permission denied) while connecting to upstream解决方法汇总:1.修改nginx.conf 中user root2.命令行执行 setsebool -P httpd_can_network_connect 13.缺少配置文件中index index.html index.htm这行在server中指定的文件4.权限问题,如果nginx没有w

2022-03-08 16:10:57 16291

中国科学技术大学 并行程序设计课程2008~2018年历年考试试卷 + 实验demo代码

考试内容包含 循环依赖、MPI、Omp,实验代码包含demo例子

2023-02-23

logisim设计简单CPU

logisim设计简单CPU

2022-01-01

计算机研究生复试/保研机试全攻略资料

计算机研究生复试/保研机试全攻略资料

2021-12-25

哈深计算机机试记录.rar

哈深计算机机试记录

2021-12-25

Shamir(t,n)密钥共享方案python程序实现.rar

Shamir(t,n)密钥共享方案python程序实现

2021-12-25

简单椭圆曲线密钥生成与加解密python实现.rar

简单椭圆曲线密钥生成与加解密python实现

2021-12-25

王道论坛计算机考研机试指南(pdf+代码)

王道论坛计算机考研机试指南(pdf+代码),包含pdf书、全代码解析和笔记

2021-05-13

王道考研机试指南(pdf)

王道论坛计算机考研机试指南

2021-05-13

ACM常⽤模板(+模板题)(基础)

⼤数、⼆分、枚举排列、⼦集⽣成、n皇后回溯、并查集、树状数组、KMP,unday,BM、01背包,完全背包、最⻓(不)上升或下降⼦序列、最⻓公共⼦序列、拓扑排序。。。。 欧拉路径和回路 搜索 最⼩⽣成树 最短路 GCD和LCM 埃拉托斯特尼筛法 唯⼀分定理 扩展欧⼏⾥得 欧拉函数 快速幂 矩阵快速幂

2021-05-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除