算法模板01
快速排序
思想:分治
确定分界点:q[l]/ q[(l+r)/2] /q[r] /随机
==(难点)==调整区间:≤x x ≥x
递归处理左右两段
暴力做法:
设置a[],b[]
对于q[l~r]:
q[i]≤x,x->a[]
q[i]≥x,x->b[]
a[]->q[],b[]->q[]
优美做法:
设置双指针l,r
i往右移动,直到看到≥x的数
j往左移动,直到看到≤x的数
swap(i,j)
循环,直到i,j相遇
12345678910111213void quick_sort(int q[],int l,int r){ if(l>=r) return;//判边界,如果只有一个数/没有数直接返回 int i=l-1,j=r+1,x=q[l]; while(i<j) { do i++;while(q[i]<x); do j--;while(q[j]>x); ...
Typora使用笔记
标题1234##这是二级标题ctrl+数字,数字是几就对应几级标题数字为0变成普通文本ctrl+"+"/"-"字体变大/变小
这是五级标题段落换行/分段123这是第一段 shift+enter第一段的第二行 enter这是第二段
这是第一段第一段的第二行
这是第二段
分割线1---
文字显示加粗1**加粗**
我是加粗
删除线1alt+shift+5
我是删除线
下划线1ctrl+u
我是下划线
斜体12ctrl+I*斜体*
我是斜体
高亮1==高亮==
==我是高亮==
拓展:11\*2\*3……
1*2*3……
也就是要想“*”显示出来,应该加上\正斜线符号
11\\*2\\*3……
1\2\3……
也就是既要显示\,又要显示*,在前面再加一个“\”即可
上下标1x^2^
x^2^
1H~2~O
H2O
拓展:1x~1~1^2^
x1^2^
上下标的局限性
列表无序列表1234* 列表+ 列表- 列表enter+enter 推出:按两次enter键即可
列表
...
note
一、引言 3背景介绍:在硬件设计领域,确保设计的正确性至关重要,而形式属性验证(FPV)是保证硬件设计质量的关键方法。 然而,编写用于验证的断言(如 SVA)是一项具有挑战性的工作,传统的方法存在一些局限性,需要不断改进和创新。 就像我们盖房子需要确保房子质量,而传统的检查方式不够完善,需要寻找更好的检查手段,这就引出了新的研究和工具的需求。
==摘要==形式属性验证(FPV)已经存在了数十年,并且已被证明能有效地发现复杂的寄存器传输级(RTL)错误。然而,诸如用 SystemVerilog 断言(SVA)编写的形式属性,即便对于有经验的用户来说,编写起来也既耗时又容易出错。先前的工作试图通过提高抽象层次来减轻这一负担,以便从高级规范生成 SVA。然而,这并不能消除对详细硬件行为进行推理和编写描述的人工工作。受异构硬件时代对 FPV 需求的增长以及大型语言模型(LLMs)进步的推动,我们开始探索 ==LLMs 是否能够捕捉 RTL 行为并生成正确的 SVA 属性==。首先,我们设计了一个基于 FPV 的 ...
RTL,FT,SUV,FPV之间的关系
RTL,FT,SUV,FPVRTL(Register Transfer Level):它是硬件设计过程中的一个关键层次,就像是盖房子的详细**==蓝图==**。你可以把它想象成一个详细的建筑设计图,用硬件描述语言(如 Verilog 或 VHDL)来描述硬件系统中的寄存器如何存储和传输数据,以及它们之间的逻辑关系和操作。它详细地说明了硬件的功能和结构,是实现硬件的基础,告诉硬件工程师如何把一个硬件系统给设计出来。
SVA(SystemVerilog Assertions):SVA 是一种专门的语言,类似于一份份检查==清单==。想象一下,你盖房子的时候会有一些要求,比如 “窗户必须能正常开关”“地板要能承受一定的重量”,SVA 就是用来描述硬件系统应该具备哪些行为和属性的语言。它可以规定信号在特定条件下应该是什么状态,或者某些操作必须遵循怎样的顺序,是用来对硬件设计的预期行为进行描述和约束的。
FT(Formal Property Verification Testbench):FT 是一个测试平台,就好比 ...
CCC
ccc
2022正方形泳池123456给定一个N×N的方格矩阵。左上角方格坐标为 (1,1),右下角方格坐标为 (N,N)。有 T 个方格内有树,这些方格的具体坐标已知。我们希望建立一个正方形的泳池。你的任务是找到一个尽可能大的正方形子矩阵,要求子矩阵内没有包含树的方格。输出满足条件的子矩阵的最大可能边长。
思路:
查找横坐标在这两课树中间的所有树,找到能确定上、下边界的树
240929
edb402531f380c4f1fffb7ae50792be3f1a888d9e17a8b7e16aa81cb61c0735183de6aa123bb10f2f514f68b35c0b083ccadda3777c64b66588ba67b0472b41a37937f6a0bdecfbe789d140fe0b7ec295586d096c7ef00ab2e0510afb3c77183192d2e049a88f13c2444d670d4b249f151992f05e53906376a229ab6dc2c382df0e51a48a1e9c058dfc2f63c1649588a9bebbaa44203de077fab35c372a30e8f625756bc5bd18daaa20620564e04e342656ce677ec9b563b860c08cc381271932b16b13c7fbd406c845c3ffe0063ad263f4a4293671d0322885dbf8879aee7026b42e99708b4ab4c9eeca0a0e46aace75c84d84b67e4105fe ...
算法模板06
ddd
区间选点给定 N 个闭区间 [ai,bi][ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。
输出选择的点的最小数量。
位于区间端点上的点也算作区间内。
将每个区间按照右端点从小到大排序
从前往后依次枚举每个区间,
如果当前区间已经包含点,pass
否则,选择当前区间右端点
贪心:选择当前最好的情况
12345678910111213141516171819202122232425262728#include<iostream>#include<algorithm>using namespace std;const int N=100010;int n;struct Range{ int l,r; bool operator< (const Range &W)const{ return r<W.r; } }range[N];int main(){ cin>>n; for(int i=0; ...
240824
edb402531f380c4f1fffb7ae50792be3246927e84dc53804a5e77a2f4a3146f80846590276011d5ed8c1460a4463898f531d8b4cb7e01cd4e18aa5be290cbed6476c7c08beab6ab2d2afadf22aeaa74bd78ebfe55a62169dd6053d68a180498d6880f7e5f4743b0f84213e830ec62ea61d24b907686d23a2e1cbacffb02b5700032701ac206b43a1aa8ed5f687b8b09dc44eb1c59a0f671a23fbb4f4a60b7ae166d02220fb489d4a3731e570553407ab62a46c4eb96dd89dd30d9ca3698d38b1e931ed85320e93d1de6eec7bfdb08b25bc21f8bd7cf45df631e4e4c3e22907bd774f010c25b515ef2aaf34c94073b0ff
...
240821
edb402531f380c4f1fffb7ae50792be3c8834ac4f9d3a96e3a29a4137c8860a99040efb9ad9ab3380a04d377305b9b47d3578ab2fba7979d15d5848a624254f231388639447aed0ca49ebc65ad862368019083477a735d1eeaac5dc806415c4aa8af1aeb6fd7e126e55183c3f77ae89622a8daa14a2e110af4b0f78fd5893fd3f0ddb5343f76328d5a381042b8c7ef1264ad502422e1a67d1f548fdcb16593ca8cae44ae5b8437fab8cb19e87c6e135ca8165215ba5ef181fd37e8d8fbdd39535208913fd1eef7f2bff4ff20bc3cdc91e14b2dbe24ac4ca3b5342e08f7c231c86eb3c36f10dfb8b1b406bbfbd7a1d8dc04765b9d55542d69b ...
算法模板05
背包九讲01背包问题有N件物品和一个容量是V的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。
有限集合的最大值问题,用闫氏DP分析法:
DP问题:
状态表示f(i,j):
集合:所有只考虑前i个物品,且总体积不超过j的选法的集合
属性:max(价值最大)
状态计算:(不重不漏的分为这两种)
所有不选择第i个物品的方案(1~i-1中选,且总体积≤j)f(i-1,j)
所有选择第i个物品的方案(1~i-1中选,且总体积≤j-v[i])f(i-1,j-v[i])+w[i]
f(i,j)=max(f(i-1,j),f(i-1,j-v[i])+w[i]);
12345678910111213141516171819202122232425262728293031#include<bits/stdc++.h>using namespace std;const int MAXN = 1005;int v[MAXN]; // 体积int w[MAXN ...