- 博客(112)
- 收藏
- 关注
原创 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 762
原创 P1039 [NOIP2003 提高组] 侦探推理
具体算法不多说了,先预处理出每个人表示的意思,然后二进制状压枚举撒谎的人,如果这个状态的大小与所给人数相同,则进行计算。linux下换行符为’\n’,windows下换行符为’\r\n’,如果数据是windows下造的,你就把’\r’也给当成字符串内容了,不wa才怪。最后数一下有多少个人可能是罪犯,统计size,如果size为0则输出impossible,为1则输出人名,其余情况输出多解。所以,你可以选择建立一个缓存区,把所有的’\r’替换成’\n’,进行计算。如果多个状态推出不同的罪犯,则多解。
2024-04-20 22:13:07 418
原创 算法---二分算法
答:这个很好解释,因为我们的「搜索区间」是 [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 978 8
原创 数的反码和补码表示
+11=[000000011原=[000000011反=[000000011补[-1]=[10000001]原=[11111110]反=[11111111]补。[+1]=[000000011原=[000000011反[-1]=[10000001]原=[11111110]反。负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1.(即在反码的基础上+1)正数的反码是其本身负数的反码是在其原码的基础上,符号位不变,其余各个位取反。正数的补码就是其本身。
2024-02-22 12:32:20 578 12
原创 数的定点表示和浮点表示
在数的定点表示法中,由于数的表示范围较窄常常不能满足各种数值问题的需要。为了扩大数的表示范围,方便用户使用,有些计算机常采用浮点表示法。尾数用以表示数的有效数值:阶码用以表示小数点在该数中的位置。在计算机中小数点一般有两种表示法:一种是小数点固定在某一位置的定点表示法;另一种是小数点的位置可任意移动的浮点表示法。S是N的尾数(Mantissa),是数值的有效数字部分,一般规定取二进制定点纯小数形式。机器中所有数的小数点位置是固定不变的,因而小数点就不必使用记号表示出来。实际上小数点可固定在任意一个位置上。
2024-02-22 12:28:39 292 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 445 1
原创 矩阵的乘法
而最里面的循环可以是A的列或者是B的行来进行变化,因为A的列和是B的行数量是相等的,这样就可以使用三层循环来解决。A矩阵和B矩阵可以做乘法运算必须满足A矩阵的列的数量等于B矩阵的行的数量。矩阵乘法的结果为行与列的关系为:行数量为A的行数量, 列数量为B的列数量。运算规则:A的每一行中的数字对应乘以B的每一列的数字把结果相加起来。
2024-01-26 20:44:32 54 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 499 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 383
原创 ChatGPT 和文心一言哪个更好用?
根据提供的搜索结果,ChatGPT和文心一言各有特点和优势,选择哪一个更好用取决于具体的应用场景和个人需求。如果需要在多个领域进行广泛的自然语言处理任务,并且不介意等待较长的生成时间,ChatGPT可能是更好的选择。对于那些需要生成具有特定情感色彩和主题性的文本,或者是中文环境下的工作,文心一言可能更具优势。生成速度:相比ChatGPT,文心一言的生成速度快,因为它使用的是较小的模型。生成速度:相比文心一言,生成速度相对较慢,因为它是一个大型模型。
2024-01-19 20:49:43 2990
原创 #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 387 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 389 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 376 2
原创 C++炸弹小游戏
小人可以随便在一些元素(如石头,岩浆,水,宝石等)上跳跃,“地面”一直在上升,小人上升到顶部或者没有血的时候游戏结束(初始20点血),小人可以随意放炸弹,共有八种炸弹。但是被炸到或者碰到岩浆就要减一滴血,拿到宝石加一滴血。炸弹炸掉石头可以得分,得到200分即可获胜。
2023-08-29 11:09:41 6130 16
原创 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 3823 18
原创 JAVA编程学习笔记
java过滤器指的是在java中起到过滤的作用的一个方法。拦截器是Spring组件,定义在org.springframework.web.servlet包下,由Spring容器管理【又有更加丰富的生缪那个周期处理方法,细粒度,且能够使用Spring中的资源】,不依赖Tomcat等容器。java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式。
2023-08-24 15:55:03 832 21
原创 #P0867. 小武老师的烤全羊
小武老师特别喜欢吃烤全羊,小武老师吃烤全羊很特别,为什么特别呢?因为他有 1010 种配料(芥末、孜然等),每种配料可以放 11 到 33 克,任意烤全羊的美味程度为所有配料质量之和。现在, 小武老师想要知道,如果给你一个美味程度 nn ,请输出这 1010 种配料的所有搭配方案。对于 100%100% 的数据,n \leq 5000n≤5000。第二行至结束,1010 个数,表示每种配料所放的质量,按字典序排列。如果没有符合要求的方法,就只要在第一行输出一个 00。一个正整数 nn ,表示美味程度。
2023-08-24 15:36:01 165 3
原创 html+js+css国际象棋,画面超精致!!
游戏规则游戏效果(上方三处黑色字为注释)游戏原理画面一个一个区域地搭建。电脑下棋基本上就是dfs遍历,找到结果最好的走法(程序中有优化)p.s. :此游戏虽代码较长,但逻辑清晰简单。这是博主呕心沥血n个月的成果 (为什么别的bloger一天就能完呀!!) ,参考多个网页游戏与多个百度资料,所以可能会和一些网页游戏效果差不多。游戏代码index.html<!DOCTYPE html><html lang="en" ><head> <m
2023-08-24 08:38:42 1979 15
原创 c++病毒/恶搞代码大全( 下 )
警告:以下为危险/永久性程序,请慎重使用。警告:以下为危险/永久性程序,请慎重使用。解决方法:将51-52行换成52行。提示:可能被杀毒软件拦截。效果:禁用任务管理器。
2023-08-15 10:09:27 1160 21
原创 c++病毒/恶搞代码大全( 上 )
(Ctrl+Alt+Delete)用方向键选该程序,点击Delete关闭。解决方法:cmd(Win+R,输入:cmd),输入shutdown -a。效果:使鼠标所点应用消失。解决方法:关闭程序即可。效果:无限生成cmd。效果:立刻或定时关机。
2023-08-13 10:37:39 4534 91
原创 狐猬编程:货运
玩具厂生产了一批玩具需要运往美国销售。该批玩具根据大小,已经将其打包装在不同的包装盒里用以运输。该批玩具包装盒共有六个型号,分别1*1*h、2*2*h、3*3*h、4*4*h、5*5*h、6*6*h的包装盒。每组数据一行,一行中有空格隔开的6个正整数,依次表示1*1*h、2*2*h、3*3*h、4*4*h、5*5*h、6*6*h玩具包装盒各自的数量,每个包装盒不超过10000。第一行一个正整数t(1≤t≤100),t表示数据组数;对于每组数据,仅输出一个整数,表示最少需要多少集装箱。
2023-08-10 10:58:30 510 16
原创 笨拙的数字
老师把某个不超过10^9的10进制正整数N分别转换成2进制A和3进制B写在黑板上。但有学生恶作剧,悄悄的把A中的一位修改,同时也把B中的一位修改,看上去还是合法的2进制和3进制。比如N=14,它正确的2进制表示为:1110,但学生修改后,可能的结果是:0110、1111..等。注意:可能有前导0。现在老师请你编程找出原来的那个10进制的正整数N。
2023-08-10 10:55:16 122 1
原创 P0095. 细胞
一矩形阵列由数字00到99组成,数字11到99代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。对于 100\%100% 的数据,保证 1 \le n,m \le 1001≤n,m≤100。第一行为矩阵的行nn和列mm;下面为一个n×mn×m的矩阵。
2023-08-10 10:34:25 93
原创 最长上升序列II
有N个数放在一个圆周上,可以从任意一个位置开始按照顺时针方向访问数据一圈,沿途可以挑选一些数,要求这些数是上升的(一个比一个大)。问最多能选多少个数?第二行有N个整数,每个数范围在[1, 1000000]。第一行:1个整数N,范围在[1, 100]。
2023-08-09 14:38:19 194 2
原创 #P0761. [NOIP2012普及组] 文化之旅
有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过一次(即如果他学习了某种文化,则他就不能到达其他有这种文化的国家)。不同的国家可能有相同的文化。不同文化的国家对其他文化的看法不同,有些文化会排斥外来文化(即如果他学习了某种文化,则他不能到达排斥这种文化的其他国家)。现给定各个国家间的地理关系,各个国家的文化,每种文化对其他文化的看法,以及这位使者游历的起点和终点(在起点和终点也会学习当地的文化),国家间的道路距离,试求从起点到终点最少需走多少路。
2023-08-04 10:10:36 212 5
原创 #P0646. [NOIP2016提高组] 换教室
保证 1 \leq a_j, b_j \leq v, 1 \leq w_j \leq 1001≤aj,bj≤v,1≤wj≤100。保证 1 \leq n \leq 20001≤n≤2000,0 \leq m \leq 20000≤m≤2000,1 \leq v \leq 3001≤v≤300,0 \leq e \leq 900000≤e≤90000。通过计算,牛牛发现申请更换第 ii 节课程的教室时,申请被通过的概率是一个已知的实数 k_iki,并且对于不同课程的申请,被通过的概率是互相独立的。
2023-08-03 20:59:23 153
原创 docker系列--解决hyper-v导致docker无法启动问题
在开始菜单中,键入“打开或关闭Windows功能”或者打开控制面板--卸载--启用和关闭windows功能 ,然后按Enter。在随后的屏幕中,确认已启用Hyper-V。确保开启windows Hyper -V、vitural Machine Platform、windows Subsystem for Linux。重新关闭和启动hyper-v,来解决解决hyper-v导致docker无法启动问题。我们看到问题出在hyper-v的问题上,搜索解决方法,官网常见问题如下。2.重新启用hyper-v。
2023-08-03 15:14:30 1386 2
原创 #B. 费解的开关
每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字“11”表示一盏开着的灯,用数字“00”表示关着的灯。输出数据一共有nn行,每行有一个小于等于66的整数,它表示对于输入数据中对应的游戏状态最少需要几步才能使所有灯变亮。对于某一个游戏初始状态,若6步以内无法使所有灯变亮,请输出“-1−1”。给定一些游戏的初始状态,编写程序判断游戏者是否可能在6步以内使所有的灯都变亮。
2023-08-02 18:08:46 143 1
https://pan.baidu.com/s/1fycjYHA7y6r-IH8H7v5XKA?pwd=ag8l
2023-06-12
vue中MVVM的理解 M:模型(Model):数据模型;负责数据存储 泛指后端进行的各种业务逻辑处理和数据操控,主要围绕数据库
2023-05-09
概述:本文为YOLOv1论文精度的记录,帮助理解YOLOv1整个训练以及预测过程 Tips: 文章绿色部分为YOLO后续论文
2023-05-09
简单的c++算法入门级
2023-05-09
关于#c++#的问题,如何解决?
2023-07-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人