自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 字符串相关算法刷题笔记

之所以采用了逆序遍历,是因为这边>=号更新过后,如果不止一个字符为最多出现次数,那么按照题意就可以输出字典序最前的那个,反之,如果采用正序遍历,就必须采用>号(Detail)若存在小的数字在大的数字的左边的情况,根据规则需要减去小的数字。对于这种情况,我们也可以将每个字符视作一个单独的值,若一个数字右侧的数字比它大,则将该数字的符号取反。若输入的字符串满足该情况,那么可以将每个字符视作一个单独的值,累加每个字符对应的数值即可。例如 XXVII 可视作 X+X+V+I+I=10+10+5+1+1=27。

2023-10-25 11:04:30 57 1

原创 Paper note:A ConvNet for the 2020s

ConvNets:卷积神经网络在2020年,视觉Transformers,尤其是Swin Transformers等分层Transformers开始取代ConvNets,成为通用视觉主干的首选。人们普遍认为,视觉Transformers比ConvNets更准确、更高效、更易扩展。但是大量的工作其实是将之前运用在CNN网络结构上的思路改进到Transformers结构当中去。

2023-10-24 22:07:45 54

原创 【ICPC备战||Day6】百题刷子

显然,最好的方法就是利用最大的边长将三角形进行讨论,我们设最大边长为x的三角形有c(x)个,另外两条边长分别为y,z,那么就可以使用y作为讨论变量,z作为受限变量,不断进行讨论。+(x-3)+(x-2)个解,由于统计了y=z的情况会导致重算,所以要剪掉y的所有取值可能的数量的一半,最后再把这个代数式除2(y,z没有区别)最终我们只需要规定这两种情况中的一种及其所对应的答案即可,为防止出现另一种情况,我们只需要进行一步swap操作,这也是非常常用的简化分类讨论思想。同列:m列中选择一列,n行中An2即可;

2023-03-18 22:27:06 81 2

原创 【区块链】

根据当时区块链网络算力得出的难易程度(前导零,所计算出来的hash开头有多少个0),将区块的属性使其拼凑成一个满足要求的hash值,(nonce值让其一直改变,从而才会计算出不同的hash),然后马上对全网进行广播打包区块,网络上的节点收到广播打包区块,会立即进行验证。假如节点有任何作弊行为,都会导致网络的节点验证不通过,直接丢弃打包的区块,这个区块就不会被记录到账本中,作弊的成本就白费了,因此在巨大的挖矿成本下,这样也就能是矿工自觉遵守区块链系统的共识协议,也就确保了整个系统的安全。

2023-03-17 11:40:40 119

原创 【Linux学习笔记】Day1

像openSUSE的Tumbleweed这样的发烧友发行版具有快速的更新周期,不支持企业版,并且在下一版本中可能不包含(或删除)当前版本中的功能或软件。现代操作系统不仅管理硬件和软件资源,还调度程序以多任务方式运行(共享处理器,以便多个任务可以明显同时发生),提供标准服务,允许用户和程序向操作系统请求发生的事情(例如打印作业),如果请求正确,操作系统将接受请求并执行所需的功能。工具可以帮助配置显示器,提供用户输入命令的Linux外壳,或者更复杂的工具,称为编译器,将源代码转换为计算机可以执行的应用程序。

2023-02-26 23:19:37 62

原创 【C语言五子棋项目】Step1

第一步,我们需要有一个棋盘,这是最基本的,没有棋盘我们就无法开展之后的行动,所以必须要有一个可视化的棋盘,同时要能够在这个棋盘上进行落子操作,也就是读取鼠标内容这些,那么最简单的方式就是选择图形化界面库,有Qt、EasyX等等这些,当然EasyX在C和C++中都可以操作(上传到Github时会显示仅支持C++),所以我选择了相对简单的EasyX,这个工具在安装包之后只需要添加一个。再一个就是算杀,如果能够找到可以直接制胜的点,那么就可以进行算杀了,算杀失败才会进行极大极小搜索,具体的思路我会在之后讲到。

2023-02-25 16:15:43 711

原创 【计算机网络】数据链路(2)

这个拓扑还可能包括特定的设备位置,如房间号和设备机架上的位置。物理拓扑通常是点对点拓扑或星型拓扑。传统的以太网络中会使用采用同轴电缆的总线拓扑,因为它价格低廉而且安装简易。星型和扩展星型拓扑安装简单、扩展性好(易于添加和删除终端设备),而且故障排除容易。在多路访问局域网中,终端设备(即节点)使用星型或扩展星型拓扑相互连接。在这种类型的拓扑中,终端设备连接到一个中央中间设备,如以太网交换机等。它必须知道网络的逻辑拓扑,以便能够确定从一个设备向另一个设备传输帧需要什么。Section 1 数据链路。

2023-01-25 23:27:43 263

原创 【计算机网络】数制系统与数据链路(1)

该图显示了从上到下顺序的OSI 模型的7层:第 7 层应用层、第 6 层表示层、第 5 层会话层、第 4 层传输层、第 3 层网络层、第 2 层数据链路层和第 1 层物理层。数据链路层高亮显示,数据链路层旁边的文本说明数据链路层为物理网络准备网络数据。一个表示来自位于应用层上方的用户流量的箭头被绘制在OSI模型上,向下延伸到路由器,最后到达网络云。在数据包从本地主机传送到远程主机的过程中,其遇到的各种网络环境可能具有不同的特性。在任意指定的网络层数据包交换过程中,可能存在多次数据链路层和介质的转换。

2023-01-24 23:33:31 133

原创 【ICPC备战||Day5】数据结构(一)

但在插入之前,不能直接将r[a]=idx写在前面,而是要先将r【a】的值赋给r【idx】,否则先存在的r【a】这个值就将丢失,idx也就没有相应的右节点了,idx的值在+1之前是不会改变的,但是idx的左右节点的值都需要用到原先指向的值,所以应将idx的赋值放在最后。栈的建立非常简单,由于是一个先进后出的木桶型结构,因此在实现时不需要大量的顺序操作,很多基本的操作都是在top运行的,不涉及栈底的改变,整个结构相对来说也更加稳定,除了insert和delete操作之外,pop和push都是小范围的数据改动。

2023-01-24 21:35:57 105

原创 【ICPC备战||Day4】基础算法(三)

令其中一个指针从起点开始向右走,当发现与起点数字相同时停止,记下当前距离记为res,这样只需要不断改变起点位置,再对res值进行比较即可,不需要双循环。返回n的最后一位数字:lowbit(n)=n & -n。Part 1 双指针算法(降低时间复杂度)求n的第k位数字:n>>k & 1。Part 2 位运算。

2023-01-19 17:30:41 159

原创 【蓝桥杯Day1】||语言基础入门

无脑解即可,需要注意的是python中已经备好了max(判大小函数)以及abs(取绝对值)两个function。break跳出一层循环,return跳出所有循环。

2023-01-19 11:59:17 55

原创 【计算机网络初步】协议和模型

每个数据链路层帧包含发送帧的 NIC 卡的源数据链路层地址和接收帧的 NIC 卡的目的数据链路层地址。上层提供编码的应用程序数据。**源 MAC 地址 - 这是发送封装有 IP 数据包的数据链路帧的设备的数据链路地址,或以太网 MAC 地址。处于不同网络中的无法互相发送数据链路帧,因此需要有一个中转器的存在,而这个中转器正是路由,当路由使用发送端的网络地址和目的端的Mac地址时,数据帧便可以通过路由器在两台主机之间进行高效传输。如图所示,两层中的协议都包含源地址和目的地址,但它们的地址具有不同的用途。

2023-01-17 19:21:20 110

原创 【ICPC备战||Day3】基础算法(二)

举个例子,我们现在有1-1000的元素,现在需要使300-600之间的值全部加2,如果我们提前设置好差分数组,我们此时只需要改变两个值,即b【300】与b【601】,因为这两个值的前后值之间距离变大,也就是差分数组的值发生了改变。我们不可能把一个小于0的数输入到数组中,这也不符合计算的规律,因此需要做的是,不论是正数还是负数,要同时+10再求得10的模,由于加10的倍数不影响模的值,所以这一步非常巧妙,可以对正负数做相同的处理,最终把mod值push_back即可。这就是在编写数组时需要注意的一个地方。

2023-01-17 19:12:30 64

原创 【ICPC备战||Day2】基础算法

通过双指针的方法将两个数组合并,应在两数组的最前端置一指针,由于这两个数组是已经排序完毕的,因此两个指针所对应的值都应该是数组中的min值,之后指针不断前移,在指针1中遇到比指针2所指向的数更小的数字则前置,否则向后移动,直至比指针2大时,指针2向后移动,如此反复,直至其中一方的指针全部走完成为空数组,另一方中所剩下的元素全部添加至最后即可(因为是两个指针中剩下最大的数了),通过这种方式将数组归并。再调整区间,确定左右区间中的元素;如何以最快的速度进行调整区间,即在不开辟额外空间的情况下,完成数据的分区。

2023-01-16 19:21:50 150 6

原创 【ICPC备战||Day1】中高级C++语法

最好的好处是,在这当中,两个指针走过的步长不需要完全相等,而是只要满足条件,其中一方就停下等待swap指令,这也是数组问题中常用的一个方式。对于f(n)+f(n+1)=f(n+2)这个式子而言,正向计算就像是一个简单的push-pop循环,我们可以采用三个数字完成这个小循环,意义就在于其中一个数作为即将被淘汰的数,即a,a的值代表f(n),另外一个数作为中介数,即b,代表了f(n+1),c则是不断计算出的结果,这种三个数字之间的流通我们称之为“有限数字流”,通过依次赋值以完成简单的update。

2023-01-15 17:33:40 256 2

原创 编程集训Day 2

刚接触编程四个月,直接上三门语言感觉还是有些吃不消,最困难的情况就是能想出来思路却不知道如何用代码来实现,感觉数学语言和编程语言还是有不少不同的,毕竟机器语言对我来说太新鲜了。昨天由于刚好接手了一些任务,没有腾出时间来练习,今天把之前的Python练习补上,明天开始再顺便复习一下之前学习的C/C++最后一个部分,字符串,感觉python的基础语法还是蛮多的。博主目前的编程能力的确有限,希望能在最短的时间之内快速提升吧。明天可以正式开始ALG的开心学习啦!

2023-01-14 23:08:25 65 2

原创 Dijkstra算法之初识

接下来构造矩阵的过程中,需要依次输入【A节点】【B节点】与【距离】,随后形成一个完整的矩阵,visited()数组用以表示是否被遍历,被遍历到的节点(即计算完成)应该去除,赋值为1,此后循环条件中加入visited【i】不为1的条件以防止重复遍历。首先我们需要将矩阵初始化,Nv即为总结点数,如果两个循环数相同,则说明是同节点,为保证在此后的循环过程中不会导致遍历到同节点崩溃的情况,我们预先定义同节点之间的距离为0,不同的节点之间距离为无穷,通过这种方式进行完全初始。

2023-01-12 22:26:27 168 6

原创 算法入门刷题Day1

关注CSDN这么久,也受惠于许多爱好分享的博客主的分享,倍感CSDN是程序员之家此言之不虚,想来大学生活的起步阶段已经走过,眼下步入了大一寒假的关键阶段,算是秉着一种自勉和共享的态度吧,从今天开始,正式成为csdn创作者中的一员,希望日后的创作过程中,能得遇大佬指点,同时也欢迎有任何观点看法的朋友们在评论区留言。我认为ALG最具有魅力的地方就在于,在不断刷题的过程当中,会体验到与最初接触算法不同的感觉,当然除此之外,有一些在竞赛当中并不常见的算法也是很耐人寻味的。Internet相关知识。

2023-01-12 20:11:25 62

空空如也

空空如也

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

TA关注的人

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