自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 八数码问题(bfs)

而这题要求最少的交换次数,将每一次的九宫格状态当作一个“状态结点”,由当前这个结点可以扩展出其它状态【即 x 可以与其上下左右(若存在的话)交换】,每一种可能的交换都将是bfs“踏出的下一步结点”。这题难在如何存储状态,并且同一种状态将会有多种方式得出,需要 “ 去重 ” 保存状态,每一个状态对应到达该状态的最短路(即x的交换次数)是多少,于是我们想到用map来存【状态-步数】,同样bfs队列里也加入到达的状态,编码阶段:九宫格转换为字符串存储解码阶段:字符串转换为九宫格后 ,再加以交换操作。

2024-04-07 20:53:55 630 4

原创 Linux实验5 shell脚本编程进阶

Linux实验5 shell脚本编程进阶1.编写脚本,实现将当前目录中所有子目录的名称输出到屏幕上。2.首先以你的姓氏的拼音为开头在当前用户的主目录下新建3个文件和2个子目录,如chen1,chen2,chen3以及子目录chen.d和backup.d。然后写一个shell脚本程序,要求把上述所有以你姓氏拼音开头的普通文件全部拷贝到目录backup.d下。

2024-04-07 20:13:57 282

原创 Linux实验4 shell脚本编程基础

编写一个脚本,要求实现在脚本内部交换x和y的值,并在屏幕上输出x和y交换值前后的结果。3.在命令行定义一个字符串变量str,并且赋值为“test for shell”,然后利用expr命令获取str中第一个字符s的位置。1.假设在/tmp下有以当前用户的帐号命名的目录,请在命令行中临时修改环境变量PATH的值,要求该目录的路径附加到该变量的最后。4.利用bc计算器,在命令行中计算半径为5个单位长度的圆形面积。5.编写一个脚本,显示当前日期及工作目录,并列出有多少个登录用户。保存退出编写,即可接着输入命令)

2024-04-07 19:57:03 335

原创 Linux实验3 shell命令进阶

Linux实验3 shell命令进阶1.利用ls命令查找/root下以a, b, c或d开头的文件2.获得系统当前时间并将结果保存在文件file中。3.列表显示/tmp目录下的所有文件信息,并将结果保存在文件allfile中。4.启动vi编辑器,新建文本file,写入信息“this is a test”后保存退出。利用附加输出重定向在文本file末尾增加重复写入信息“this is a test”。5.利用cat命令以及重定向功能向文件file输入信息“this is a test”。

2024-04-07 19:44:03 419

原创 Linux实验2 初步使用shell

Linux实验2 初步使用shell1.请指出下面每条命令中哪部分是命令名、选项和参数:2.以自己的名字在“/home”目录下新建一个目录﹐把“/etc/inittab”复制到该目录,然后对整个目录进行删除。3.以列表及递归方式查看/dev目录下的文件。4.修改当前系统时间为2015年1月1日。5.分屏显示/etc/inittab文件。

2024-04-07 19:29:28 434

原创 3.数据查询(实验报告)

(6)使用union运算符将student_info表中姓“张”的学生的学号和姓名与curriculum表的课程编号、课程名称返回在一个表中,且列名为u_编号、u_名称。④列出学号为0001的学生的分数比学号为0002号的学生的最高成绩还要高的课程编号和分数。③列出学号为0001的学生的分数比学号为0002号的学生的最低分数高的课程编号和分数。⑤查询所有学生的总成绩,要求列出学号、姓名、总成绩,没有选修课程的学生的总成绩为空。④查询每个学生的所选课程的最高成绩,要求列出学号、姓名、课程编号和分数。

2023-05-05 20:15:41 3366 1

原创 2.sql server数据表的管理(实验报告)

在SQL Server管理平台中创建student_info、curriculum表;2.sql server数据表的管理(实验报告)在SQL Server管理平台中,将student_info表的学号列设置为主键,非空;使用Transact-SQL语句Create table在studentdb数据库中创建grade表;student_info、curriculum、grade表中的数据如图1-5至1-7所示。

2023-05-05 11:52:46 2243

原创 1.数据库的管理(实验报告)

(1)在SQL Server管理平台中创建数据库。① 运行SQL Server管理平台,在管理平台的对象资源管理器中展开服务器。②右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。在新建数据库对话框的数据库文件名称文本框中输入学生管理数据库名studentsdb,单击“确定”按钮。(2) 选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“文件”、“文件组”、“选项”、“权限”和“扩展属性”等页面。(3) 打开studentsdb数据库的“属性”对话框,在“文件”选项卡

2023-05-05 11:33:19 1502 2

原创 数据库I (SELECT语句)

mySQL内容概览SQL 分类SQL语言的规则与规范1.基本规则2.SQL大小写规范 注释命名规则基本的SELECT语句:0.SELECT...1.SELECT ... FROM ...2.列的别名3.去除重复行4.空值参与运算5.着重号 ` ` 6.查询常数7.显示表结构8.过滤数据

2023-04-01 15:58:49 630

原创 单源最短路的建图方式(Dijkstra)

1.热浪(Acwing 1129)2.信使(Acwing 1128)3.香甜的黄油(Acwing 1127)4.最小花费(Acwing 1126)方法一(求边权乘积最大):方法二(用 log 函数 转化为加法,传统“最短路”):5.最优乘车(Acwing 920)6.昂贵的聘礼(Acwing 903)重点:建图 ​主要为Dijkstra的堆优化板子和朴素版(看数据范围)再次看看时间复杂度[ n 为点数,m 为边数 ]:朴素版:O(),堆优化版:O( (n+m)logm )。

2023-01-29 21:05:42 611

原创 连通性1(Tarjan 理论版)

一、无向图割点、桥、双连通分量Tarjan 算法求割点和桥(割边)求“割点”的代码 边双和点双连通分量边双连通分量 和 点双连通分量 的缩点 二、有向图强连通分量1.有向图的弱连通与强连通2.强连通分量Kosaraju算法Tarjan 算法(求强连通分量)

2023-01-26 18:16:12 787

原创 2023牛客寒假算法基础集训营1

2023牛客寒假算法基础集训营1L - 本题主要考察了运气A - World Final? World Cup! (I)H - 本题主要考察了DFSC -现在是,学术时间 (I)K -本题主要考察了dp方法一:状压dp方法二:推公式 O(1)D - 现在是,学术时间 (II)M -本题主要考察了找规律G - 鸡格线F - 鸡玩炸弹人E - 鸡算几何B -World Final?World Cup! (II)I -本题也主要考察了DFS J -本题竟也主要考察了

2023-01-23 20:56:53 2049 3

原创 二叉苹果树 【树形dp(背包)】

二叉苹果树题目描述有一棵二叉苹果树,如果数字有分叉,一定是分两叉,即没有只有一个儿子的节点。这棵树共N个节点,标号1至N,树根编号一定为1。我们用一根树枝两端连接的节点编号描述一根树枝的位置。一棵有四根树枝的苹果树,因为树枝太多了,需要剪枝。但是一些树枝上长有苹果,给定需要保留的树枝数量,求最多能留住多少苹果。

2023-01-12 16:48:03 814 1

原创 [NOIP2007 提高组] 树网的核

设T=(V,E,W)是一个无圈且连通的无向图(也称为无根树),每条边都有正整数的权,我们称T为树网(),其中V,E分别表示结点与边的集合,W表示各边长度的集合,并设T有n个结点。路径:树网中任何两结点a,b都存在唯一的一条简单路径,用d(a,b)表示以a,b为端点的路径的长度,它是该路径上各边长度之和。我们称d(a,b)为a,b两结点间的距离。D(v,P)=min{d(v,u)},u为路径P上的结点。...

2022-08-12 22:05:35 370 2

原创 单调栈及其应用

单调栈是一种内部元素具有单调性的栈,可以解决“以某个值为最值的最大区间”等问题。能以O(n)的时间复杂度找到每一个元素右边或左边第一个比它大或小的数。(超级好用艾~ 不然可能就得用(毒瘤的)二分+RMQ惹QAQ)1.糟糕的一天(洛谷P2866, USACO 2006 月赛)2.天气变化3.长方形(洛谷P1950)......

2022-07-31 11:25:10 730

原创 博弈论 1.Introduction(组合游戏基本概念、对抗搜索、Bash游戏、Nim游戏)

博弈论是研究具有斗争或竞争性质现象的数学理论和方法。每个玩家都有一个偏好,A一般是希望A赢,如果不可以的话就倾向于 平局,B一般倾向B赢,达不到的话就倾向于平局。他们的每一步组成了一个“函数”,或者说是“映射”,即每一步操作都会对应一种结果,而每一步又都不是固定的,是根据上一步来产生...... “一般的博弈游戏是非常复杂的,一般算不出答案,所以在算法考试中一般不考,考得多的是下面的‘组合游戏’” 组合游戏 给了限制,给问题做了简化“ 状态的转移” -> “有向无环图” 0个石子为结束状态,0可以由1得来,

2022-07-27 21:23:38 996 1

原创 二分、三分、01分数规划【第III弹】

二分、三分、01分数规划

2022-07-27 00:05:26 237 2

原创 二分、三分、01分数规划 【第I弹】

二分 几种不同的板子例题一 Music Notes超经典二分题 Drying[POJ3104]

2022-07-23 01:45:13 226

原创 背包问题(入门基础版)

在f[i-1][j-v[i]]状态时有,可以在此基础上放入目前的i号物品,得到f[i][j]有;另一种情况,在上一次,即f[i-1][j]时已经有(意为有j体积了),这一轮第i个物品不要,所以体积还是原来的j,即f[i][j];更新第0行后,更新第1行,再要更新第2行的时候,发现只与它的前一行也就是第1行有关,第0行已经没用了,这时将第2行装到第0行里,后面再要写第3行时,写到第1行里……并新添本次选择了的物品后的状态的感觉。【动画演示真的yyds好嘛^^】...

2022-07-18 00:29:02 230

原创 Codeforces#808(Div.2)A-D题解

Codeforces#808(Div.2)A-D题解A. Difference OperationsB. Difference of GCDsC. Doremy's IQD. Difference Array

2022-07-18 00:25:03 337

原创 区间dp(入门基础版)

区间dp括号匹配模板最长回文子序列/子串石子合并凸多边形的划分田忌赛马数学考试(两个不重叠子串最大和)

2022-07-15 16:19:04 511

原创 拓展域并查集&种类并查集&带权并查集

目录一、先从带权并查集说起 状态压缩二、种类并查集三、拓展域并查集(主要是想要学 种类并查集,然后带权并查集算作引入,在普通 并查集的基础上更容易理解)运用拓展域并查集和种类并查集的例题有 洛谷的 P2024食物链,P1525关押罪犯先只做(看懂题解)了食物链 P2024 [NOI2001] 食物链 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 3+y=4+7 ,y=d[3]+x-d[2],x是2到3的关系题目: 三、拓展域并查集后面要是我真又看不懂了,就

2022-07-13 01:15:01 283

原创 NOIP1999拦截导弹(dp+二分 nlogn)

转化:此题第一问即(我)常见的 求最长不上升子序列长度(只是数据限制的方法我个菜鸡不常见……)重点是第二问,由Dilworth定理得:可划分的最少不上升子序列的数目就是其最长下降子序列的长度...

2022-07-13 00:13:01 156

原创 最长公共子序列(dp)

目录一、简单版 二、+求最长子序列数目版传送门 二、+求最长子序列数目版[HAOI2010]最长公共子序列 (nowcoder.com) 滚动数组还不会,先就这样惹qwq (润

2022-07-08 14:21:40 194

原创 2022天梯赛L2题解笔记

目录一、插松枝二、老板的作息表 方法一:方法二、三、龙龙送外卖四、大众情人人造松枝加工场的工人需要将各种尺寸的塑料松针插到松枝干上,做成大大小小的松枝。他们的工作流程(并不)是这样的:每人手边有一只小盒子,初始状态为空。每人面前有用不完的松枝干和一个推送器,每次推送一片随机型号的松针片。工人首先捡起一根空的松枝干,从小盒子里摸出最上面的一片松针 —— 如果小盒子是空的,就从推送器上取一片松针。将这片松针插到枝干的最下面。工人在插后面的松针时,需要保证,每一步插到一根非空松枝干上的松针片,不能比前一步插上的松

2022-06-13 16:27:25 1934 3

原创 木块问题UVa101(vector 模拟)

题目:首先题意要看懂,,,,“归位”也就是0号木块放回第0堆,1号放回第1堆...注意到,“move” a 相当于比"pile" a 多一步清空a上部的操作(然后a上方这一摞也就只有a一个了),“onto” b 比"over" b 也多一步清空,那样就可以简化为看是否需要提前清空a, b 上方,再整体挪a到b上方即可Orz_Orz。关于用什么方法,看到有人手写链表(窝望而生畏%%%),也看到递归的写法(窝个fw木有看懂QAQ).还是动态数组(vector)好理解(对于窝而言)【plus:

2022-05-27 22:08:58 621

原创 最短路记录路径(Dijkstra&Floyd)

窝这里Dijkstra是用的优先队列优化版的,适用于那些个卡时间卡空间的题目,用前向星存的图,老师上课讲的二维数组版的也没怎么听(QAQ)后面有空再补吧~先贴代码:Floyd (先来简单的)#include<iostream>#include<stdio.h>#include<string>using namespace std;typedef long long ll;const int inf=0x3f3f3f3f;int t,n,m,dis

2022-05-25 13:05:35 429

原创 关于C++的sstream和结构体重载

首先说明这两个并没有关联,只是在一起看了罢了一、sstream复习下getline的用法,可以直接读入一行,包括空格考虑这样一个题目:输入数据的每行包含若干个以空格隔开的整数,输出每行中所有整数之和。(如果只能使用字符和字符数组,一般有两种方案:一是使用getchar()边读边算,代码较短,但容易写错qwq;二是每次读取一行再扫描该行的字符同时计算结果,但如果使用C++,代码可以很简单)#include<iostream>#include<string>#i

2022-05-25 12:53:12 150 1

原创 动态规划入门

一、概念定义:动态规划是解决多阶段决策过程最优化问题的一种方法。阶段:把问题分成几个相互联系的有顺序的几个环节,这些环节即称为阶段。状态:某一阶段的出发位置称为状态。通常一个阶段包含若干状态。决策:从某阶段的一个状态演变到下一个阶段某状态的选择。策略:由开始到终点的全过程中,由每段决策组成的决策序列称为全过程策略,简称策略。状态转移方程:前一阶段的终点就是后一阶段的起点,前一阶段的决策选择导出了后一阶段的状态,这种关系描述了由i阶段到i+1阶段的演变规律,称为状态转移方程。形如:

2022-05-21 14:45:09 959 3

原创 拓扑排序三题(菜肴制作&杂物&最大食物链计数)

DAG:有向无环图图的建立很重要一、【HNOI]2015菜肴制作传送门1思路&技巧:倒过来看,因为要让尽可能小的数字先选,也就是大的后选,整个图倒着建,先选最大的、入度为0的点,输出时再倒过来。#include<iostream>#include<queue>#include<cstring>using namespace std;const int M=1e5+6;int ct,T,n,m,head[M],inc[M],...

2022-05-19 20:24:45 202

原创 最小生成树(Prim&Kruskal)

目录先贴几个概念(Prim算法来点板子题:Kruskal算法先贴几个概念(时间复杂度:之前有说Prim更适合“稠密图”,Kruskal更适合“稀疏图”,(因为Kruskal只与边有关嘛)。不过现在的说法貌似是,优化后都差不太多了,但Kruskal代码短,好写~(所以大家更青睐于Kruskal..Prim算法都说prim和Dijstra算法很像,是“双胞胎算法”,可以把它们写得很像(说是也就一个if条件的不同),Prim算法也可以写一个dis[]数组,Pr.

2022-05-14 13:09:49 320 1

原创 Good Numbers (hard version)cf#595(Div.3)

目录题目:思路:一、三进制标书二、二分的思路三、贪心题目:(还是想说vj的页面看着亲切)题目大意:定义“好数”为3的幂的和,并且指数要不相同,给你一个数x,求>=x的最小“好数”思路:数字高达1e18,又是“幂的和”,这一连串的信息,窝居然没有想到“进制”QAQ,那么在了解要基于“三进制”来做,那么具体该怎样实现呢?拖拖拉拉可算弄懂了三种方法,在此记录一下,感谢雪长!感谢雪长感谢雪长!!!一、三进制标书第一种最容易接受,从低位向高位遍历,如果

2022-05-11 02:36:36 96

原创 最短路的三种算法

目录DijkstraBellman-Ford到SPFA如何优化 :题目代码:Floyd算法比较&总结Dijkstra整体基于贪心,不适用于负权边(否则每走一次负边路径更小,贪心不再成立)Bellman-Ford到SPFA(可以有负边,但不能有负权回路)本质是暴力,到更新不动为止(插点更新,每一个更新后的点都对后面的点有影响)可以判断有无“负权回路”:超过(n-1)轮。【通过其它每一个点都能将其更新一轮,它还能再更新,说明它已经绕圈圈绕...

2022-05-02 12:36:01 229

原创 图论基础&拓扑排序

1.图的存储图的BFS遍历2.欧拉图(即能不重复得走完所有边且起点和终点相同的为欧拉图,只能不重复走完所有边但不能回到起点的是半欧拉图)3.拓扑排序1)概念引入一个工程常被分为多个小的子工程,这些子工程被称为活动(Activity),在有向图中若以顶点表示活动,有向边表示活动之间的先后关系,这样的·图简称为AOV网。在AOV网中为了更好地完成工程,必须满足活动之间先后关系,需要将各活动排一个先后次序即为拓扑排序。(其实这个在我们生活中很常见啦,比如学校要.

2022-04-30 12:38:38 1739

原创 二叉树子树结点个数

题目来源于Acwing~如上所示,由正整数1,2,3……组成了一颗特殊二叉树。我们已知这个二叉树的最后一个结点是n。现在的问题是,结点m所在的子树中一共包括多少个结点。比如,n=12,m=3那么上图中的结点13,14,15以及后面的结点都是不存在的,结点m所在子树中包括的结点有3,6,7,12,因此结点m的所在子树中共有4个结点。输入格式输入数据包括多行,每行给出一组测试数据,包括两个整数m,n。最后一行 0 0 表示输入结束。输出格式对于每一组测试数据,输出一行,该行包含一

2022-04-16 16:52:14 993

原创 二叉树由两种遍历推出另一种遍历

感觉关键就是找准左右边界,这里注意计算方法:从前序列找,那么根节点在左,前序列这个左子树右边界和右子树左边界,就根据原来的左边界加长度来计算,如果是右序列,那么分界线就由右边界减去长度来计算。前序+中序->后序可找题目:美国血统(洛谷1827,USACO3.4)#include<iostream>#include<string>using namespace std;string a,b;//a前序列 b中序列 void build(int l1,in

2022-04-16 16:36:20 852

原创 序列遍历二叉树

目录类模板(指针版)来了来了!!!数组版!!构造遍历!不用指针!层序输入不用建树(类模板(指针版)就不多说了,按前序遍历的字符串创建的二叉树,然后有前、中、后、层序遍历输出,计算树的深度的功能。层序遍历是用的队列版,后来发现数组版(貌似好像更)好写。然后考试。。写类,是挺麻烦的,直接改成一个个普通函数会好写一些吧。#include<iostream>#include<algorithm>#include<queue>using

2022-04-16 15:28:24 962 1

原创 动态维护中位数(优先队列)

神奇的中位数Description中位数:n个数中的中位数为将这n个数从小到大排好序后,第​​​位数的值。(​为小于等于x​的整数最大的那个)。现在给定一个空的数组a,然后读入n个数,对于每读入一个数就输出当前数组的中位数是多少。Input输入第一行包含一个正整数n(1≤n≤1000000)。第i+1行包含一个整数。对于数组的构造如下:假定第 i−1次读入后输出的答案是lastans,那么第i次读入加入到数组中的数为​⨁lastans,即=lastans⨁(⨁表示异或,las

2022-04-07 01:19:40 822

原创 C. The Number Of Good Substrings

题目:C. The Number Of Good Substrings题意:01字符串中有多少子串满足其十进制数值等于该子串长度,子串可包含前导零算数值。思路:注意到字符串S<2e5,而=1024,那么=1024*1024>1e6,所以我们要计算的一个长度只用20位就足够了,这里我们用一个循环去扫数字1,用p记录它的第一个前导零的位置(也就是上一个计算的串的最后一位的下一个),只要当前的计算的串数值小于等于总长度(包括前导零)即可ans++,因为前导零可以补足以达到长度等于数

2022-04-06 18:28:32 140

原创 Kolya and Tanya 快速幂的应用

Kolya and Tanya 快速幂的应用

2022-04-06 17:09:25 93

空空如也

空空如也

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

TA关注的人

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