- 博客(156)
- 收藏
- 关注
原创 bottom-up-attention.pytorch
detectron2直接克隆有问题,需要把detecron2/detecron2中的所有文件放入detecron2下。
2024-04-30 20:02:41
297
原创 3月21日OJ刷题
基于递归的折半查找描述请编写一个递归的折半查找算法,查找给定有序数组中的某一元素。输入多组数据,每组数据有三行。第一行为数组长度n,第二行为n个递增排列的数字,第三行为需要查找的数字k。当n=0时输入结束。输出每组数据输出一行,如果可以找到数字,则输出“YES”,否则输出“NO”。输入样例 151 4 6 7 8661 2 5 7 9 10080输出样例 1YESNO#include<bits/stdc++.h>usin..
2022-03-21 20:01:37
476
原创 3月20日OJ刷题
基于邻接表的新顶点的增加描述给定一个无向图,在此无向图中增加一个新顶点。输入多组数据,每组m+2行。第一行有两个数字n和m,代表有n个顶点和m条边。顶点编号为1到n。第二行到第m+1行每行有两个数字h和k,代表边依附的两个顶点。第m+2行有一个数字f,代表新插入的顶点编号。当n和m都等于0时,输入结束输出每组数据输出n+1行。为增加顶点后的邻接表。每两个数字之间用空格隔开。输入样例 13 21 22 342 11 240 0输出样例 1..
2022-03-21 14:53:47
758
原创 3月19日OJ刷题
基于二叉链表的树结构相等的判断描述设二叉树中每个结点的元素均为一个字符,按先序遍历的顺序建立二叉链表,按此方法创建两棵二叉树,然后编写递归算法判断这两棵树是否相等。输入多组数据,每组数据有两行。每行为一个二叉树的先序序列(序列中元素为‘0’时,表示该结点为空)。当输入只有一个“0”时,输入结束。输出每组数据输出一行。若两个二叉树相等输出“YES”,否则输出“NO”。输入样例 1abcd00e00f00ig00h00abcd00e00f00ig00h00a..
2022-03-19 20:20:54
1497
原创 3月17日OJ刷题
病毒感染监测描述医学研究者最近发现了某些新病毒,通过对这些病毒的分析,得知它们的DNA序列都是环状的。现在研究者收集了大量的病毒DNA和人的DNA数据,想快速检测出这些人是否感染了相应的病毒。为方便研究,研究者将人的DNA和病毒的DNA均表示成由一些小写字母组成的字符串,然后检测某种病毒的DNA序列是否在患者的DNA序列中出现过,如果出现过,则此人感染了病毒,否则没有感染。注意:人的DNA序列是线性的,而病毒的DNA序列是环状的。输入多组数据,每组数据有一行,为序列A和B,A对应病.
2022-03-17 20:37:35
596
原创 3月16日OJ刷题
双栈的基本操作描述将编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端。当第0号栈的栈顶指针top[0]等于-1时该栈为空;当第1号栈的栈顶指针top[1]等于m时,该栈为空。两个栈均从两端向中间增长(见下图)。试编写双栈初始化,判断栈空、栈满、进栈和出栈算法的函数。函数调用次序依次为:进栈、栈满的判断、出栈、栈空的判断。双栈数据结构的定义如下:typedef struct{int top[2], bot[2];...
2022-03-16 19:41:15
773
原创 3月15日OJ刷题
Ackermann函数的递归求值描述已知Ackermann函数定义如下:写出计算Ack(m,n)的递归算法。输入多组数据,每组数据有一行,为两个整数m和n。当m和n都等于0时,输入结束。输出每组数据输出一行,为Ack(m,n)。输入样例 13 53 100 0输出样例 12538189#include<iostream>using namespace std; int Ack(int m,int n){ i..
2022-03-15 17:34:21
371
原创 3月14日OJ刷题
基于链表的两个递增有序序列的合并描述给定两个递增的整数序列A和B,利用链表表示序列A和B,将A和B合并为一个递增的有序序列C,序列C不允许有重复的数据。要求空间复杂度为O(1)。输入多组数据,每组数据有三行,第一行为序列A和B的长度n和m,第二行为序列A的n个元素,第三行为序列B的m个元素(元素之间用空格分隔)。n=0且m=0时输入结束。输出对于每组数据输出一行,为合并后的序列,每个数据之间用空格分隔。输入样例 15 51 3 5 7 9 2 4 6 8..
2022-03-15 15:15:05
396
原创 查找排序基础
#include<bits/stdc++.h>using namespace std;//顺序查找void SqSearch(int a[],int n,int key){ int flag=0; for(int i=1;i<=n;i++) { if(a[i]==key) { cout<<i<<endl; flag=1; } }...
2022-03-12 16:26:22
1018
原创 图基础算法
邻接矩阵+DFS+BFS#include<bits/stdc++.h>using namespace std;typedef struct{ char vex[100]; int edge[100][100]; int vexnum,edgenum;}Graph;int visitedDFS[100]={0};int visitedBFS[100]={0};//构造图void Create(Graph &g){ int vexnu.
2022-03-10 20:07:03
113
原创 二叉排序树基础
#include<bits/stdc++.h>using namespace std;typedef struct BiNode{ int data; BiNode *lchild,*rchild;}BiNode,*BiTree;//插入void Insert(BiTree &bt,int k){ if(bt==NULL) { bt=(BiTree)malloc(sizeof(BiNode)); bt-&g.
2022-03-10 16:37:20
139
原创 线索二叉树基础
#include<bits/stdc++.h>using namespace std;//定义typedef struct ThreadNode{ char data; ThreadNode *lchild,*rchild; int ltag,rtag;//0代表孩子,1代表后继}ThreadNode,*ThreadTree;//建一棵二叉树ThreadTree Create(){ ThreadTree tt; char ch; .
2022-03-09 21:12:36
161
原创 树的基础算法
#include<bits/stdc++.h>using namespace std;//定义typedef struct BiNode{ char data; BiNode *lchild,*rchild;}BiNode,*BiTree;//创建BiNode* Creat(){ BiNode *bt; char ch; cin>>ch; if(ch=='#') { bt=NULL; .
2022-03-08 20:51:27
178
原创 字符串基础
#include<bits/stdc++.h>using namespace std;#define MaxSize 100typedef struct{ char ch[MaxSize]; int length;}SString;//暴力模式匹配int Baoli(SString S,SString T){ int i=1,j=1,k=1; while(i<=S.length&&j<=T.length) {.
2022-03-07 20:16:53
71
原创 栈、队列基础
栈#include<bits/stdc++.h>using namespace std;#define MaxSize 100//定义typedef struct{ char data[MaxSize]; int top;}SqStack;//初始化void InitStack(SqStack &S){ S.top=-1;}//判栈空bool StackEmpty(SqStack &S){ if(S.top==-
2022-03-07 19:07:34
101
原创 单链表基础
#include<bits/stdc++.h>using namespace std;//定义typedef struct LNode{ int data; LNode *next;}LNode,*LinkList;//头插void LinkHeadInsert(LinkList &L){ L=(LinkList)malloc(sizeof(LNode)); L->next=NULL; int x; LNode *.
2022-03-06 20:30:20
290
原创 线性表基础
#include<bits/stdc++.h>using namespace std;#define MaxSize 100//线性表定义typedef struct{ int data[MaxSize]; int length;}SqList;//线性表初始化void ListInit(SqList &L){ L.length=0;}//线性表打印void print(SqList &L){ cout<<.
2022-03-05 16:33:42
125
原创 字符A~Z(65~90)a~z(97~122)
520. 检测大写字母我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如 "USA" 。单词中所有字母都不是大写,比如 "leetcode" 。如果单词不只含有一个字母,只有首字母大写,比如"Google" 。给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。示例 1:输入:word = "USA"输出:true示例 2:输入:word = "FlaG"输出:false提示:1 <= wo...
2022-03-04 19:50:19
135
原创 数组的遍历
485. 最大连续 1 的个数给定一个二进制数组 nums , 计算其中最大连续 1 的个数。示例 1:输入:nums = [1,1,0,1,1,1]输出:3解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.示例 2:输入:nums = [1,0,1,1,0,1]输出:2提示:1 <= nums.length <= 105nums[i]不是0就是1.来源:力扣(LeetCode)链接:https://leetco...
2022-03-04 15:13:08
65
原创 141. 环形链表
给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递。仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部...
2022-03-02 21:38:36
49
原创 83. 删除排序链表中的重复元素
给定一个已排序的链表的头head,删除所有重复的元素,使每个元素只出现一次。返回 已排序的链表。示例 1:输入:head = [1,1,2]输出:[1,2]示例 2:输入:head = [1,1,2,3,3]输出:[1,2,3]提示:链表中节点数目在范围 [0, 300] 内-100 <= Node.val <= 100题目数据保证链表已经按升序 排列来源:力扣(LeetCode)链接:https://leetcode-cn.com/p...
2022-03-02 20:12:29
54
原创 【算法设计与分析】回溯算法
一、回溯算法回溯法是一种组织搜索的一般技术,有“通用的解题法”之称,用它可以系统的搜索一个问题的所有解或任一解。有许多问题,当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,往往要使用回溯法。可以系统地搜索一个问题的所有解或任意解,既有系统性又有跳跃性。回溯法的基本做法是搜索,或是一种组织得井井有条的,能避免不必要搜索的穷举式搜索法。这种以深度优先的方式系统地搜索问题的解的方法称为回溯法。二、问题的解空间应用回溯法求解时,需要明确定义问题的解空间。问题的解空...
2020-05-09 10:31:42
1456
原创 【算法设计与分析】贪心算法
一、贪心算法在求最优解问题的过程中,依据某种贪心标准,从问题的初始状态出发,直接去求每一步的最优解,通过若干次的贪心选择,最终得出整个问题的最优解,这种求解方法就是贪心算法。从贪心算法的定义可以看出,贪心算法不是从整体上考虑问题,它所做出的选择只是在某种意义上的局部最优解,而由问题自身的特性决定了该题运用贪心算法可以得到最优解。如果一个问题可以同时用几种方法解决,贪心算法应该是最好的选择之一。二、贪心算法的理论基础贪心算法是一种在每一步选择中都采取在当前状态下最好或最优的选择,希望得到结
2020-05-09 10:18:39
510
原创 【算法设计与分析】动态规划
一、动态规划的基本思想 动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。我.
2020-05-09 10:03:41
431
原创 【算法设计与分析】递归与分治策略
递归算法程序直接或间接调用自身的编程技巧称为递归算法(Recursion)。一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满...
2020-05-06 08:41:53
327
原创 【算法设计与分析】递推算法
递推算法一个问题的求解需一系列的计算,在已知条件和所求问题之间总存在着某种相互联系的关系,在计算时,如果可以找到前后过程之间的数量关系(即递推式),那么,从问题出发逐步推到已知条件,此种方法叫逆推。无论顺推还是逆推,其关键是要找到递推式。递推算法的首要问题是得到相邻的数据项间的关系(即递推关系)。递推算法避开了求通项公式的麻烦,把一个复杂的问题的求解,分解成了连续的若干步简单运算。一般说来...
2020-05-06 08:29:50
1339
原创 【算法设计与分析】绪论
为什么要学算法一、算法——程序的灵魂二、提高分析问题的能力算法及其重要特性 算法(Algorithm):对特定问题求解步骤的一种描述,是指令的有限序列。⑴ 输入:一个算法有零个或多个输入。⑵ 输出:一个算法有一个或多个输出。⑶ 有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。⑷ 确定性:算法中的每一条指令必须有确切的含义,对于相同的输入只能...
2020-05-06 08:20:52
420
原创 图学习总结(三)
有向无环图及其应用一、AOV网与拓扑排序一、AOV网:在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,称这样的有向图为顶点表示活动的网,简称AOV网。 AOV网特点:1.AOV网中的弧表示活动之间存在的某种制约关系。 2.AOV网中不能出现回路 。二、拓扑排序1、拓扑序列:设G=(V,E)是一个具有n个顶点的有向图,V中的顶点序列v1, v2, …...
2019-12-01 11:07:30
263
原创 图学习总结(二)
最小生成树一、Prim算法设G=(V, E)是具有n个顶点的连通网,T=(U, TE)是G的最小生成树, T的初始状态为U={u0}(u0∈V),TE={ },重复执行下述操作:在所有u∈U,v∈V-U的边中找一条代价最小的边(u, v)并入集合TE,同时v并入U,直至U=V。#include<bits/stdc++.h>const int maxsize=100;u...
2019-12-01 10:37:41
189
原创 图学习总结(一)
图的逻辑结构与存储结构一、图的逻辑结构一、图的定义 图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G=(V,E)。其中:G表示一个图,V是图G中顶点的集合,E是图G中顶点之间边的集合。 若顶点vi和vj之间的边没有方向,则称这条边为无向边,表示为(vi,vj)。如果图的任意两个顶点之间的边都是无向边,则称该图为无向图。若从顶点vi到vj的边有方向...
2019-11-26 17:02:56
290
原创 树和二叉树学习总结(三)
树、森林与二叉树的转换一、树转化为二叉树1.兄弟加线.2.保留双亲与第一孩子连线,删去与其他孩子的连线.3.顺时针转动,使之层次分明.二、森林转换为二叉树 ⑴ 将森林中的每棵树转换成二叉树;⑵ 从第二棵二叉树开始,依次把后一棵二叉树的根结点作为前一棵二叉树根结点的右孩子,当所有二叉树连起来后,此时所得到的二叉树就是由森林转换得到的二叉树。三、二叉树转换为树或森林...
2019-11-17 10:48:39
436
原创 树和二叉树学习总结(二)
二叉树的基本概念一、二叉树的定义二叉树是n(n≥0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。二、二叉树的特点⑴ 每个结点最多有两棵子树;⑵ 二叉树是有序的,其次序不能任意颠倒。三、特殊的二叉树一、斜树1 .所有结点都只有左子树的二叉树称为左斜树;2 .所有结点都只有右子树的二叉树称...
2019-11-16 10:01:42
672
原创 树和二叉树学习总结(一)
树的基本概念一、树的定义树:n(n≥0)个结点的有限集合。当n=0时,称为空树;任意一棵非空树满足以下条件:⑴ 有且仅有一个特定的称为根的结点;⑵ 当n>1时,除根结点之外的其余结点被分成m(m>0)个互不相交的有限集合T1,T2,… ,Tm,其中每个集合又是一棵树,并称为这个根结点的子树。二、树的基本术语结点的度:结点所拥有的子树的个数。树的度:树中各结点度的最大值。...
2019-11-15 11:32:48
382
原创 11月13日训练日记
临近期末,然而课又多了。。。还要准备四级,真的好忙啊。。。这两天依然在做题。接下来还是要尽快做题。希望好好的利用好没课的时间,尽快做题。...
2019-11-13 22:30:07
101
原创 11月10日训练日记
这几天主要做了矩阵快速幂和高斯消元的题目。矩阵快速幂本身不难,难的是怎么构造矩阵,这几天主要学习掌握了如何构造矩阵。在这个专题中感觉掌握的还可以,但如果做综合题,大部分题我可能确实也想不到要构造矩阵来做。。。接下来就是要把这部分掌握熟练。...
2019-11-10 21:48:29
113
原创 11月6日训练日记
今晚的训练赛,A,B,C都不难,本应该都做出来。无奈B题虽然很快就想出来怎么模拟,但却过不去。。。后来代码越写越乱、越写越乱,就弃掉了。还有就是时间太短了。。。后面三个题压根没来得及看。这三天做了几道矩阵的题,还得继续做题吖。...
2019-11-06 22:14:57
106
原创 11月3日训练日记
时间过的好快啊,半学期已经过去了。这一个月我看了数学的不少博客,也做了不少题。确实感受到了数学之美hhh。。。现在看一些题也知道该往哪方面想了(虽然有时候想不出来)。总的来说还是提高了不少。但要说给我一个数学题,甚至不是很难的,我还是不能确定做的出来。确实开了学之后在ACM上的投入比起暑假来大大减少。自己总是觉的时间还有不少,于是进度很慢,一拖再拖。昨天听老师一算,确实感觉到时间不是很多了。再...
2019-11-03 23:00:45
188
原创 10月30日训练日记
全程在做B题,我枯了。。。结束后看了看题解。B题这个操作也太巧妙了。。。先把所有边的长度求出来,再按边从大到小排序,能组成三角形的最后一条边就是答案。在判断能不能组成三角形那里有一个bitset操作,respect,学到了学到了。这两天还是在做题,又来新题了,加油吧。...
2019-10-30 22:24:57
135
原创 10月27日训练日记
好吧。。。51上的题目做不动了。于是找了本数论书,又滚去看书了。。。这两天总结了一下数据结构学过的内容。背了点英语。然后把以前很多没有看到过的地方,原根啥的看了一遍(做题遇到过)。准备这几天先结合着看书和博客,之后再做题。...
2019-10-27 22:03:02
135
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人