自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 BFS教程

我们发现每次搜索的位置都是距离当前节点最近的点。因此,BFS是具有最短路的性质的。那么我们可以在第一次选择的时候,做出当前最好的选择,在第二次选择的时候,再做出那时候最好的选择,由此积累。当我们在每次的选择面前,都做到了当前最好的选择,那么我们就可以由局部最优推出整体最优。这里也是类似的,我们可以在每次出发的时候,走到离自己最近的点,由此我们每次都保证走最近的,那从局部最近推整体最近,必有一条路是整体最近的。本题求的是最短路,因此我们可以利用BFS从当前节点出发,每次都向周围拓展。

2024-08-03 08:36:03 392 19

原创 可达2951题 数位拆分

思路:从二进制的角度,从0到30位每一位来判断求和,开一个新的数组统计第i位是0和1的个数,a[i]放到0~30位的每一位上,然后将a[i]在第位上为0数量乘以2的次方。

2024-07-28 16:55:47 293 3

原创 tkinter 电子时钟 实现时间日期 可实现透明 无标题栏

这个例子创建了一个窗口,并在窗口上显示当前的时间和日期。通过使用root.attributes(‘-alpha’, 0.5)可以将窗口的透明度设置为0.5,使其变得半透明。同时,使用root.overrideredirect(True)可以隐藏窗口的标题栏。这个例子使用了datetime模块来获取当前的时间和日期,并使用Label小部件来显示在窗口上。以下是一个使用tkinter库实现的电子时钟,在窗口上显示当前的时间和日期,并且可以设置窗口为透明无标题栏。

2024-07-03 13:21:23 283 1

原创 Tarjan算法讲解。

根据 Robert Tarjan 的名字命名的算法Tarjan算法可以在线性时间内求出无向图的割点与桥,再进一步的求出双联通分量,也在数据结构上做出了贡献。给出一张连通的无向图G,求出至少加入多少条边才能使得图G是一个边双连通的。low:我们用low[i]表示一个节点的子树中可以到达最小的dfn。(显然对于一个刚刚遍历到的点我们给他赋上一个新的dfn,low)即求边双连通分量把度为一的节点数x (x+1)/2即为答案。Tarjan算法是图论中的一种算法,用作于图的联通性。2.求点和边的双连通分量。

2024-07-03 08:54:45 206

原创 约瑟夫问题

有 n 个人排成一圈,从 1 到 n 标号。从第一个人开始报数,每次数到 m 的人出列,下一个继续从 1 开始数,依次类推,直到所有人都出列。输出一行,包含 n 个数,表示每次出列的人的标号。对于 100% 的数据,保证 1≤m≤n≤100。第一行,两个整数 n,m。输出每次出列的人的编号。

2024-07-02 12:03:07 223

原创 树(Tree)和二叉树

2. 某二叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该二叉树中的叶子结点数为( B )上面的遍历次序就是 A -> B -> D -> E -> H -> C -> F -> G。上面的遍历次序就是 D -> B -> E -> H -> A -> F -> C -> G。上面的遍历次序就是 D -> H -> E -> B -> F -> G -> C -> A。如果i=1,则结点i是二叉树的根,无双亲,如果i>1,则其双亲结点是结点[i/2]

2024-05-11 19:58:12 1547 15

原创 c++数据结构-图(详解附算法代码,一看就懂)

从图中某一顶点出发,系统的访问图中所有顶点,并且每个顶点只被访问一次,这种操作叫做图的遍历。V是顶点的有穷非空集合,E是边的集合。深度优先遍历和深度优先搜索相似,它是先访问一个点,再访问与这个点相连的所有点,当这个点所有相连的点访问完,再退回下一个点。完全图:一个 n 阶的完全无向图含有 n*(n-1)/2 条边,一个 n 阶的完全有向图含有 n*(n-1) 条边。有向图:边上有箭头,只能从箭头的引出的结点到被指向的结点,不能逆着箭头走。G[i][j] 的值,表示点 i 到点 j 的边的权值,定义如下,

2024-05-11 19:52:33 1612 1

原创 P1010 [NOIP1998 普及组] 幂次方

主要思路是递归/分治,因为分解出的指数还要继续分解,是重复的但规模更小的问题。关于求log_2 xlog。x,暴力枚举即可,数据很小。

2024-05-08 20:51:03 360 2

原创 P1713 麦当劳叔叔的难题

我心目中最聪明的就是第一个跑进麦当劳大门的,我希望你帮我找出最聪明和最不聪明的小朋友,可能的最大的到达时间差。说我们铭铭小朋友成功的回答了爸爸的问题,自然少不了要去索要些奖励,抠门的爸爸一看报纸,嘿,门口的麦当劳在搞活动,还有免费午餐哦,不过前提条件:得正确回答麦当劳叔叔的问题。例如,4\times 44×4 的矩阵,格子 (1, 1),(2, 3),(4, 2)为障碍区,黑格子就是一条可行的路线。上图轮廓线的状态对应的 A = [0,0,2,3,3,0,2,1]计算最短路是容易的,考虑计算最长路。

2024-05-08 07:44:07 670 1

原创 c++病毒/恶搞代码大全(后序)

【代码】c++病毒/恶搞代码大全(后序)

2024-05-05 21:01:42 1689 2

原创 笛卡尔树(Cartesian Tree)

if(node->key>new_node->key) //直到栈顶的元素的key大于当前结点的key。//将新插入的节点插入,作为右链的最后。if(node->right)//将原来的右子链挂载到new_node的左子树。//节点的key,即原数组中 Array[index]值。树中的元素满足二叉搜索树性质,要求按照中序遍历得到的序列为原数组序列。树中节点满足堆性质,节点的key值要大于其左右子节点的key值。//在原来数组中的索引。//找出栈顶元素,就是笛卡尔树的根。root)//非递归进行中序遍历。

2024-05-05 20:53:53 436

原创 P2483 【模板】k 短路 / [SDOI2010] 魔法猪学院

题目背景注:对于 kk 短路问题,A* 算法的最坏时间复杂度是 O(nk \log n)O(nklogn) 的。虽然 A* 算法可以通过本题原版数据,但可以构造数据,使得 A* 算法在原题的数据范围内无法通过。事实上,存在使用可持久化可并堆的算法可以做到在 O((n+m) \log n + k \log k)O((n+m)logn+klogk) 的时间复杂度解决 kk 短路问题。详情见 OI-Wiki。题目描述iPig 在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练。

2024-04-20 22:18:21 866

原创 P1039 [NOIP2003 提高组] 侦探推理

具体算法不多说了,先预处理出每个人表示的意思,然后二进制状压枚举撒谎的人,如果这个状态的大小与所给人数相同,则进行计算。linux下换行符为’\n’,windows下换行符为’\r\n’,如果数据是windows下造的,你就把’\r’也给当成字符串内容了,不wa才怪。最后数一下有多少个人可能是罪犯,统计size,如果size为0则输出impossible,为1则输出人名,其余情况输出多解。所以,你可以选择建立一个缓存区,把所有的’\r’替换成’\n’,进行计算。如果多个状态推出不同的罪犯,则多解。

2024-04-20 22:13:07 510

原创 算法---二分算法

答:这个很好解释,因为我们的「搜索区间」是 [left, right) 左闭右开,所以当 nums[mid] 被检测之后,下一步的搜索区间应该去掉 mid 分割成两个区间,即 [left, mid) 或 [mid + 1, right)。当我们将区间[l, r]划分成[l, mid - 1]和[mid, r]时,其更新操作是r = mid - 1或者l = mid,此时为了防止死循环,计算mid时需要加1,即mid = ( l + r + 1 ) /2。

2024-03-30 16:47:04 1096 8

原创 数的反码和补码表示

+11=[000000011原=[000000011反=[000000011补[-1]=[10000001]原=[11111110]反=[11111111]补。[+1]=[000000011原=[000000011反[-1]=[10000001]原=[11111110]反。负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1.(即在反码的基础上+1)正数的反码是其本身负数的反码是在其原码的基础上,符号位不变,其余各个位取反。正数的补码就是其本身。

2024-02-22 12:32:20 655 12

原创 数的定点表示和浮点表示

在数的定点表示法中,由于数的表示范围较窄常常不能满足各种数值问题的需要。为了扩大数的表示范围,方便用户使用,有些计算机常采用浮点表示法。尾数用以表示数的有效数值:阶码用以表示小数点在该数中的位置。在计算机中小数点一般有两种表示法:一种是小数点固定在某一位置的定点表示法;另一种是小数点的位置可任意移动的浮点表示法。S是N的尾数(Mantissa),是数值的有效数字部分,一般规定取二进制定点纯小数形式。机器中所有数的小数点位置是固定不变的,因而小数点就不必使用记号表示出来。实际上小数点可固定在任意一个位置上。

2024-02-22 12:28:39 360 5

转载 Dijkstra算法

它的时间复杂度为O(N^2),其中N是图中节点的数量,但是可以使用优先队列等数据结构来提高算法的效率,使其时间复杂度降至O(E log N),其中E是图中边的数量。节点 3 在之前已经有了一个距离记录(距离为 7,参阅下表),这个距离是之前步骤中由路径 0 -> 1 -> 3 的两个边权重(分别为 5 和 2)相加得到的。对于节点 3: 将构成路径 0 -> 1 -> 3 的所有边权重相加,得到总距离为 7(0 -> 1 距离为 2,1 -> 3 距离为 5)。下一步将要分析这两个节点。

2024-02-16 17:46:33 499 1

原创 矩阵的乘法

而最里面的循环可以是A的列或者是B的行来进行变化,因为A的列和是B的行数量是相等的,这样就可以使用三层循环来解决。A矩阵和B矩阵可以做乘法运算必须满足A矩阵的列的数量等于B矩阵的行的数量。矩阵乘法的结果为行与列的关系为:行数量为A的行数量, 列数量为B的列数量。运算规则:A的每一行中的数字对应乘以B的每一列的数字把结果相加起来。

2024-01-26 20:44:32 101 1

原创 P10096 [ROIR 2023 Day 1] 扫地机器人

扫地机器人是一个边长 k\times kk×k 的正方形,边与坐标轴平行。初始时,扫地机器人左下角位于 (0,0)(0,0),右上角位于 (k,k)(k,k)。根据给定的机器人移动操作,计算清扫的总面积(被机器人覆盖过的点就算被清扫过的点)。给定一个由 nn 个移动操作组成的序列,第 ii 个移动操作由方向 d_id。表示(N 即向上,E 即向右,W 即向左,S 即向下),且距离 a_ia。接下来的 nn 行中,每行包含一个移动操作和对应的距离 a_ia。样例解释:下图是两个样例中机器人的移动情况。

2024-01-26 18:14:25 598 1

原创 单源最短路的扩展应用---------最短路计数

输出 NN 行,每行一个非负整数,第 ii 行输出从顶点 11 到顶点 ii 有多少条不同的最短路,由于答案有可能会很大,你只需要输出对 100003100003 取模后的结果即可。接下来 MM 行,每行两个正整数 x,yx,y,表示有一条顶点 xx 连向顶点 yy 的边,请注意可能有自环与重边。给出一个 NN 个顶点 MM 条边的无向无权图,顶点编号为 11 到 NN。第一行包含 22 个正整数 N,MN,M,为图的顶点数与边数。问从顶点 11 开始,到其他每个点的最短路有几条。

2024-01-19 20:51:11 414

原创 ChatGPT 和文心一言哪个更好用?

根据提供的搜索结果,ChatGPT和文心一言各有特点和优势,选择哪一个更好用取决于具体的应用场景和个人需求。如果需要在多个领域进行广泛的自然语言处理任务,并且不介意等待较长的生成时间,ChatGPT可能是更好的选择。对于那些需要生成具有特定情感色彩和主题性的文本,或者是中文环境下的工作,文心一言可能更具优势。生成速度:相比ChatGPT,文心一言的生成速度快,因为它使用的是较小的模型。生成速度:相比文心一言,生成速度相对较慢,因为它是一个大型模型。

2024-01-19 20:49:43 3313

原创 #P0044. [FJOI2014] 最短路径树问题

若有多条长度最短的路径,则选择经过的顶点序列字典序最小的那条路径(如路径 AA 为 1,32,111,32,11,路径 BB 为 1,3,2,111,3,2,11,路径 BB 字典序较小。注意是序列的字典序的最小,而非路径中节点编号相连的字符串字典序最小)。第一行输入三个正整数 n,m,kn,m,k,表示有 nn 个点 mm 条边,要求的路径需要经过 kk 个点。输出一行两个整数,以一个空格隔开,第一个整数表示包含 kk 个点的路径最长为多长,第二个整数表示这样的不同的最长路径有多少条。

2024-01-06 15:03:22 426 4

原创 #2392. Johnson 全源最短路

给定一个包含 n 个结点和 m 条带权边的有向图,求所有点对间的最短路径长度,一条路径的长度定义为这条路径上所有边的权值和。为从 i 到 j 的最短路,在第 i 行输出 \sum\limits_{j=1}^n j\times dis_{i,j}接下来 m 行:每行 3 个整数 u,v,w表示有一条权值为 w 的有向边从编号为 u 的结点连向编号为 v 的结点。如果不存在从 i 到 j 的路径,则 dis_{i,j}=10^9dis。第 1 行:2 个整数 n,m,表示给定有向图的结点数量和有向边数量。

2024-01-06 14:41:11 446 2

原创 BFS、SPFA、Dijkstra算法中vis数组的用法对比

【代码】BFS、SPFA、Dijkstra算法中vis数组的用法对比。

2024-01-05 20:21:55 616 2

原创 2529. 跑路

小 A 的家到公司的路可以看做一个有向图,小 A 家为点 11,公司为点 nn,每条边长度均为一千米。小 A 的工作不仅繁琐,更有苛刻的规定,要求小 A 每天早上在 6:006:00 之前到达公司,否则这个月工资清零。1 \to 1 \to 2 \to 3 \to 41→1→2→3→4,总路径长度为 44 千米,直接使用一次跑路器即可。100%100% 的数据满足 2\leq n \leq 502≤n≤50,m \leq 10 ^ 4m≤10。第一行两个整数 n,mn,m,表示点的个数和边的个数。

2024-01-04 15:12:26 417 2

原创 hhhhhhh

【代码】hhhhhhh。

2023-09-23 11:42:16 279 12

原创 c++推箱子小游戏

由于写游戏时间较长,更新较慢,请大佬们理解一下。

2023-09-09 19:57:45 5095 13

原创 C++超级迷宫游戏

用钥匙、护盾等道具帮助你的小人通过大门、墙、怪物、岩浆等困难到达终点。

2023-08-30 16:41:04 757 22

原创 C++炸弹小游戏

小人可以随便在一些元素(如石头,岩浆,水,宝石等)上跳跃,“地面”一直在上升,小人上升到顶部或者没有血的时候游戏结束(初始20点血),小人可以随意放炸弹,共有八种炸弹。但是被炸到或者碰到岩浆就要减一滴血,拿到宝石加一滴血。炸弹炸掉石头可以得分,得到200分即可获胜。

2023-08-29 11:09:41 6898 19

原创 C++三体星战小游戏

物理小游戏,懒得 写注释。游戏代码#include<bits/stdc++.h>#include<bits/stdc++.h>#include<windows.h>#include<conio.h>using namespace std;int toint(double a){return ((int)(a*10+5))/10;}int rand(int a){return rand()%a;}void SlowDisplay(int x,c

2023-08-27 08:34:27 4025 19

原创 吃豆子小游戏

最近做了一个小游戏,有点。话不多说,直接上代码。

2023-08-27 08:25:21 413 2

原创 JAVA编程学习笔记

java过滤器指的是在java中起到过滤的作用的一个方法。拦截器是Spring组件,定义在org.springframework.web.servlet包下,由Spring容器管理【又有更加丰富的生缪那个周期处理方法,细粒度,且能够使用Spring中的资源】,不依赖Tomcat等容器。java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式。

2023-08-24 15:55:03 927 21

原创 #P0867. 小武老师的烤全羊

小武老师特别喜欢吃烤全羊,小武老师吃烤全羊很特别,为什么特别呢?因为他有 1010 种配料(芥末、孜然等),每种配料可以放 11 到 33 克,任意烤全羊的美味程度为所有配料质量之和。现在, 小武老师想要知道,如果给你一个美味程度 nn ,请输出这 1010 种配料的所有搭配方案。对于 100%100% 的数据,n \leq 5000n≤5000。第二行至结束,1010 个数,表示每种配料所放的质量,按字典序排列。如果没有符合要求的方法,就只要在第一行输出一个 00。一个正整数 nn ,表示美味程度。

2023-08-24 15:36:01 237 3

原创 html+js+css国际象棋,画面超精致!!

游戏规则游戏效果(上方三处黑色字为注释)游戏原理画面一个一个区域地搭建。电脑下棋基本上就是dfs遍历,找到结果最好的走法(程序中有优化)p.s. :此游戏虽代码较长,但逻辑清晰简单。这是博主呕心沥血n个月的成果 (为什么别的bloger一天就能完呀!!) ,参考多个网页游戏与多个百度资料,所以可能会和一些网页游戏效果差不多。游戏代码index.html<!DOCTYPE html><html lang="en" ><head> <m

2023-08-24 08:38:42 2189 15

原创 C++桌面贪吃蛇,能通关的都是大神(Windows可编译)

【代码】C++桌面贪吃蛇,能通关的都是大神(Windows可编译)

2023-08-22 16:12:57 298 13

原创 C++简易单机贪吃蛇无尽模式

贪吃蛇吃食物,每吃一个得一分,撞到墙或者撞到自己死。

2023-08-22 16:07:24 233 4

原创 俄罗斯方块(上下左右键控制)

【代码】俄罗斯方块(上下左右键控制)

2023-08-21 15:13:46 657 41

原创 C++跑酷小游戏

【代码】C++跑酷小游戏。

2023-08-19 09:56:26 869 39

原创 C++跑酷小游戏

【代码】C++跑酷小游戏。

2023-08-16 12:04:03 115 8

原创 C++坦克大战源代码

【代码】C++坦克大战源代码。

2023-08-16 11:57:38 2131 13

vue中MVVM的理解 M:模型(Model):数据模型;负责数据存储 泛指后端进行的各种业务逻辑处理和数据操控,主要围绕数据库

为什么说VUE是一个渐进式的javascript框架, 渐进式是什么意思? VUE允许你将一个网页分割成可复用的组件,每个组件都包含属于自己的HTML、CSS、JAVASCRIPT以用来渲染网页中相应的地方。对于VUE的使用可大可小,它都会有相应的方式来整合到你的项目中。所以说它是一个渐进式的框架。VUE是响应式的(reactive)这是VUE最独特的特性,也就是说当我们的数据变更时,VUE会帮你更新所有网页中用到它的地方。 vue生命周期 beforeCreate(创建前) :组件实例被创建之初,组件的属性生效之前 //beforeCreate生命周期执行的时候,data和methods中的数据都还没有初始化。不能在这个阶段使用data中的数据和methods中的方法 created(创建后) :组件实例已经完全创建,属性也绑定,但真实 dom 还没有生成,$el 还不可用 // data 和 methods都已经被初始化好了,如果要调用 methods 中的方法,或者操作 data 中的数据,最早可以在这个阶段中操作 beforeMount(挂载前) :在挂载开始之前被调用:相关

2023-05-09

概述:本文为YOLOv1论文精度的记录,帮助理解YOLOv1整个训练以及预测过程 Tips: 文章绿色部分为YOLO后续论文

YOLOv1相对与同期模型最大的特点是其为单阶段模型,所以YOLO的运行速度相对于其他模型有显著提升。作者创新性的将目标检测问题看作回归问题,输入一张图片经过一个‘黑盒子’便可直接输出预测结果。为了更好的理解YOLO目标检测的过程,我们先不看那个黑盒子,而是聚焦于输出结果,即模型推理阶段。 1. 推理阶段 下图给出了模型的推理过程,YOLOV1的输入为448 × 448 × 3 448\times448\times3448×448×3图像,输出大小为7 × 7 × 30 7\times7\times307×7×30向量,输出向量的含义是我们理解YOLO模型推理阶段

2023-05-09

简单的c++算法入门级

我们如何把现实中大量而复杂的问题,以特定的数据类型和特定的存储结构保存到主存储器(内存)中。 (注:数据结构解决了数据存储的问题,比如要存储一个班级50人的成绩,可以使用数组直接在内存开辟出整块空间用于存储;但是当要存储一个学校5000人的成绩时,由于内存没有这么大整块空间用于存储,此时不能用数组,转而可以用链表方式。诸如此类的数据存储问题,都属于数据结构问题。) 以及在此基础上(数据被存储到内存后),为实现某个功能(比如查找某个元素,删除某个元素,对元素进行排序等)而执行的相应操作,这个相应的操作也叫算法。 数据结构 = 个体的存储 + 个体与个体的关系存储 (如数组,个体间的关系是连续存储;链表,上一个个体指向下一个个体的存储地址) 算法 = 对存储数据的操作 (相同的数据,采用存储数据方式不一样,对应的某个功能算法就不一样) 2.数据结构的地位 答: 数据结构是软件中最核心的课程 程序 = 算法 + 数据结构 = 数据的存储 + 数据的操作 + 可以被计算机执行的语言 3.数据结构的主要内容 答: 一、基础知识 1.数据、数据对象、数据元素、数据项 的

2023-05-09

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

TA关注的人

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