- 博客(42)
- 收藏
- 关注
原创 SSD核心技术——FTL(Trim和磨损平衡)
一句话解释:是一个新增的ATA命令,当用户删除一个文件时,操作系统会发 Trim 命令给 SSD,告诉 SSD 该文件对应的数据无效了。一旦 SSD 知道哪些数据无效之后,在做垃圾回收的时候就可以把这些删除掉的数据抛弃掉,不做无谓的数据搬移。
2023-07-19 09:54:24 1325
原创 SSD 核心技术:FTL(2)映射管理
根据映射粒度的不同,FTL 映射有基于块的映射,有基于页的映射,还有混合映射(Hybrid Mapping)。
2023-07-18 15:10:22 1009 1
原创 大话存储读书笔记(1) —— IO大法好
所有部件按照仲裁总线或中断总线上给出的信号来判断这个时刻总线可以由哪个部件来使用。信号可以由CPU发出,也可以由设备发出。CPU运行操作系统内核的设备管理程序,从而发生了这些信号。在软件上采用中断链的方式。
2023-07-18 11:23:41 109
原创 SSD核心技术——FTL(1)
FTL是Flash Translation Layer(闪存转换器)的缩写,完成主机(或用户)逻辑地址空间到内存(Flash)物理地址空间的翻译(Translation),或者说映射(Mapping)。SSD每吧一笔用户逻辑数据写入内存地址,便记录下该逻辑地址到物理地址的映射关系。当主机想读取该数据时,SSD便会根据这个映射,从闪存读取这笔数据然后返回给用户。完成逻辑地址空间到物理地址空间的映射,这是 FTL 最原始且基本的功能。事实上,SSD 中的 FTL 还有很多事情可做。
2023-07-18 11:18:39 1436 1
原创 Cache淘汰算法-LIRS原理与实现
IRR(Inter-Reference Recency): 表示一个数据块在最近的两次访问期间,有多少个不同的数据块被访问过。注:当数据块第一次被访问时,IRR初始化为无穷大;R(Recency):数据块最近一次访问到当前时间内有多少个不同的数据块被访问过。以序列1 2 3 4 3 1 5 6 5为例对于数据块1来说,在当前时间片共有两次访问,两次访问期间有2、3、4这三个不同的数据块被访问,所以数据块1的IRR = 3。
2023-07-17 16:03:23 602 1
原创 大话存储读书笔记(2) —— 磁盘原理与技术
SCSI寻址机制和几个阶段空闲阶段总线一开始处于空闲状态,没有节点要发起通信。总线空闲的时候,BSY和SEL这两条控制信号的状态都为False状态,此时任何节点都可以发起通信。仲裁阶段节点通过提升自己在数据线路上自已所对应的那条线路的电位来申请总线使用权。提升自己ID对应线路的电位的同时,这个节点也提升BSY线路的电位。选择阶段仲裁阶段之后,获胜的节点将BSY和SEL信号线置位。然后将8或16条数据总线上对应它自身ID的线路和对应它要通信的目标ID的线路的电位提升,这样目的节点就能感知到它自己
2023-07-14 17:38:05 63
原创 寒假每日一题——大型植被恢复
大型植被恢复问题描述长时间的干旱使得 Farmer John 的 N 块草地上牧草匮乏。随着雨季即将到来,现在应当是重新种植的时候了。在 Farmer John 的储物棚里有四个桶,每个桶里装着一种不同的草种。他想要在每块草地上播种其中一种草。作为一名奶农,Farmer John 想要确保他的每头奶牛都能得到丰富的食谱。他的 M 头奶牛每一头都有两块喜爱的草地,他想要确保这两块草地种植不同种类的草,从而每头奶牛都可以选择两种草。已知每块草地最多被 3 头奶牛喜爱。请帮助 Farmer Jo
2022-02-11 11:39:13 342
原创 寒假每日一题——困牛排序(思维题)
困牛排序问题描述Farmer John 正在尝试将他的 N 头奶牛,方便起见编号为 1…N,在她们前往牧草地吃早餐之前排好顺序。当前,这些奶牛以 p1,p2,p3,…,pN 的顺序排成一行,Farmer John 站在奶牛 p1 前面。他想要重新排列这些奶牛,使得她们的顺序变为 1,2,3,…,N,奶牛 1 在 Farmer John 旁边。今天奶牛们有些困倦,所以任何时刻都只有直接面向 Farmer John 的奶牛会注意听 Farmer John 的指令。每一次他可以命令这头奶牛沿着队伍向后
2022-02-10 16:18:27 609
原创 寒假每日一题——金发姑娘和N头牛(map+手写离散化)
金发姑娘和N头牛问题描述你可能听过关于金发姑娘和三只熊的经典故事。然而,鲜为人知的是,金发姑娘最终成了一个农民。在她的农场中,她的牛棚里有 N 头奶牛。不幸的是,她的奶牛对温度相当敏感。对于奶牛 i,使其感到舒适的温度为 Ai…Bi。如果金发姑娘将牛棚的恒温器的温度 T 设置为 T<Ai,奶牛就会觉得冷,并会产出 X 单位的牛奶。如果她将恒温器的温度 T 设置在 Ai≤T≤Bi,奶牛就会感到舒适,并会产出 Y 单位的牛奶。如果她将恒温器的温度 T 设置为 T>Bi,奶牛就会觉得
2022-02-10 15:48:04 384
原创 寒假每日一题——闪烁(状态压缩)
闪烁问题描述农夫约翰对牛棚里昏暗的灯光感到不满,刚刚安装了一个新吊灯。新吊灯由 N 个灯泡组成,这 N 个灯泡围成一圈,编号为 0∼N−1。奶牛对这个新吊灯非常着迷,并且喜欢玩以下游戏:对于第 i 个灯泡,如果在 T−1 时刻,它左侧的灯泡(当 i>0 时,为第 i−1 个灯泡;当 i=0 时,为第 N−1 个灯泡)是开着,那么在 T 时刻,就切换这个灯泡的状态。这个游戏将持续 B 单位时间。给定灯泡的初始状态,请确定在 B 单位时间后,它们的最终状态。输入格式第一行包含两个整数 N
2022-02-09 12:43:44 168
原创 寒假每日一题——品种邻近(滑动窗口)
品种邻近问题描述农夫约翰的 N 头奶牛排成一排,每头奶牛都用其品种 ID 进行描述。如果两头相同品种的牛靠得太近,它们就会吵架。具体的说,如果同一品种的两头奶牛在队列中的位置相差不超过 K,我们就称这是一对拥挤的牛。请计算品种 ID 最大的拥挤奶牛对的品种 ID。输入格式第一行包含两个整数 N 和 K。接下来 N 行,每行包含一个整数表示队列中一头奶牛的品种 ID。输出格式输出品种 ID 最大的拥挤奶牛对的品种 ID。如果不存在拥挤奶牛队,则输出 −1。数据范围1≤N≤50000
2022-02-08 20:42:27 143
原创 寒假每日一题——桶列表(前缀和)
桶列表问题描述Farmer John 正在考虑改变他给奶牛分配牛奶桶的方式。他希望使用尽量少的牛奶桶,请帮助他!Farmer John 有 N 头奶牛,编号为 1…N。第 i 头奶牛需要从时刻 si 到时刻 ti 之间挤奶,并且挤奶过程中需要用到 bi 个桶。多头奶牛可能在同一时刻都在挤奶;每个桶在每个时刻只能供一头奶牛使用。也就是说,第 i 头奶牛在时刻 si 到时刻 ti 之间挤奶时,如果用到了某个桶,则该桶在这段时间不能被其他奶牛使用。当然,这个桶在这段时间之外可以被其他奶牛所使用。
2022-02-08 17:16:31 753
原创 寒假每日一题——挤奶顺序
挤奶顺序问题描述Farmer John 有 N 头奶牛,编号为 1…N。他每天都要给他的奶牛们挤奶。奶牛的社会结构非常复杂,其结构有两个关键特性。首先,有 M 头奶牛的地位等级分明,按照地位越高越早挤奶的规则,这些奶牛的相对挤奶顺序是固定的。此外,有 K 头奶牛的具体挤奶顺序也是固定的,比如,奶牛 4 必须在所有奶牛中的第二位挤奶。幸运的是,Farmer John 总是能够以一种满足所有这些情况的顺序给他的奶牛们挤奶。不幸的是,奶牛 1 最近生病了,所以 Farmer John 想要尽早给这
2022-02-07 19:41:27 1013
原创 寒假每日一题——牛为什么过马路 II
牛为什么过马路问题描述农夫约翰的农场的布局十分奇特,一条大型的环形道路将奶牛吃草的田地围了起来。每天早晨,奶牛们穿过这条道路,进入到田地吃草;每天晚上,奶牛们穿过这条道路,离开田地,返回牛棚休息。众所周知,奶牛是有习性的动物,每头奶牛每天通过道路的方式都相同。每头奶牛每天固定的从道路的某一位置进入田地,从道路的另一不同位置离开田地。所有奶牛产生的所有进出位置之间互不相同。约翰共有 26 头奶牛,依次命名为 A∼Z。因此,道路上共有 52 个不同的进出位置。约翰沿着环形道路按顺时针方向扫描了
2022-01-31 17:42:48 824
原创 算法基础课——连通块中点的数量
连通块中点的数量问题描述给定一个包含 n 个点(编号为 1∼n)的无向图,初始时图中没有边。现在要进行 m 个操作,操作共有三种:C a b,在点 a 和点 b 之间连一条边,a 和 b 可能相等;Q1 a b,询问点 a 和点 b 是否在同一个连通块中,a 和 b 可能相等;Q2 a,询问点 a 所在连通块中点的数量;输入格式第一行输入整数 n 和 m。接下来 m 行,每行包含一个操作指令,指令为 C a b,Q1 a b 或 Q2 a 中的一种。输出格式对于每个询问指令 Q1 a
2022-01-29 22:55:49 136
原创 算法基础课——合并集合(并查集)
合并集合问题描述一共有 n 个数,编号是 1∼n,最开始每个数各自在一个集合中。现在要进行 m 个操作,操作共有两种:M a b,将编号为 a 和 b 的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作;Q a b,询问编号为 a 和 b 的两个数是否在同一个集合中;输入格式第一行输入整数 n 和 m。接下来 m 行,每行包含一个操作指令,指令为 M a b 或 Q a b 中的一种。输出格式对于每个询问指令 Q a b,都要输出一个结果,如果 a 和 b 在同一集合内
2022-01-29 22:11:03 982
原创 寒假每日一题——方块游戏
方块游戏问题描述农夫约翰试图通过给奶牛一套通常用于学龄前儿童的 N 个拼写板来教他的奶牛阅读。每个拼写板的每一侧都有一个单词和一个图画。例如,一侧可能有单词 cat 和一只小猫,另一侧可能有单词 dog 和一只小狗。因此,当所有拼写板放置到地面上时,会显示一组 N 个单词。通过翻转其中一部分板子,就可以得到另一组 N 个单词。为了帮助奶牛练习单词拼写,约翰想要制作一些木块,在每个木块上都印上一个字母,使得奶牛可以使用这些木块拼出看到的单词。为了使得无论哪一组 N 个单词朝上显示,奶牛都能将其
2022-01-29 13:04:34 316
原创 数学问题——买不到的数目
买不到的数目问题描述小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大于17的任何数字都可以用4和7组合出来。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。输入格式两个正整数 n,m,表示每种包装中糖的颗数。输出格式一个正整数,表示最大不能买到的糖数。数据范围
2022-01-27 20:51:25 1091 1
原创 寒假每日一题——农田缩减
农田缩减问题描述农夫约翰的 N 头奶牛分布在其二维农场的不同位置。约翰想用一个长方形的围栏把所有的奶牛围起来,围栏的边需要平行于 x 轴和 y 轴。在能够包含所有奶牛的情况下(处于围栏边界的奶牛也算包含在内),约翰希望围栏围起的面积尽可能小。不幸的是,由于上个季度的牛奶产量很低,约翰的预算十分紧张。因此,他希望建立一个更小的围栏,甚至为了实现这一目标,他愿意卖掉农场中的一头奶牛。请帮助约翰计算,卖掉牛群中的一头奶牛以后,他可以用围栏围起来的最小面积(为剩下的奶牛建造尽可能小的围栏)。对于这个
2022-01-27 12:43:14 932
原创 寒假每日一题——懒惰的牛
懒惰的牛问题描述这是一个炎热的夏日。懒洋洋的奶牛贝茜想将自己放置在田野中的某个位置,以便可以在短距离内尽可能多地吃到美味的草。贝茜所在的田野中共有 N 片草地,我们可以将田野视作一个一维数轴。第 i 片草地中包含 gi 单位的青草,位置坐标为 xi。不同草地的位置不同。贝茜想选取田野中的某个点作为她的初始位置(可能是某片草地所在的点)。只有一片草地与她的初始位置的距离不超过 K 时,贝茜才能吃到那片草地上的草。如果贝茜选择最佳初始位置,请确定她可以吃到的青草最大数量。输入格式第一行包含
2022-01-27 10:46:37 168
原创 寒假每日一题——镜子田地
镜子田地问题描述农夫约翰在屋子外面放了一些旧镜子,他的奶牛们像往常一样调皮地偷走了它们!奶牛们将镜子放置在了一个矩形田地中,该田地可被划分为 N × M 个方格区域。在每个方格区域中,奶牛在其某对对角之间放置一个双面镜,因此,共有两种放法,一种为 / 放置(镜子连接方格左下角和右上角),另一种为 \ 放置(镜子连接方格左上角和右下角)。一天晚上,奶牛贝茜将激光发射器带到了该田地中。她站在田地外面,沿着田地的行或列水平或垂直照射光束,使光束反射一定数量的镜子。由于镜子都是沿对角线摆放,因此经反射
2022-01-26 18:09:34 141
原创 寒假每日一题——圆形牛棚
圆形牛棚问题描述作为当代建筑的爱好者,农夫约翰建造了一个完美圆环形状的新牛棚。牛棚内部有 n 个房间,围成一个环形,按顺时针编号为 1∼n。每个房间都既有通向相邻两个房间的门,也有通向牛棚外部的门。约翰想让第 i 个房间内恰好有 ri 头牛。为了让奶牛们有序的进入牛棚,他计划打开一个外门,让牛从该门进入。然后,每头牛顺时针穿过房间,直到到达合适的房间为止。约翰希望通过合理选择打开的门,使得所有奶牛的行走距离之和尽可能小(这里只考虑每头牛进入牛棚以后的行走距离)。请确定他的奶牛需要行走的最小
2022-01-26 15:22:13 579
原创 寒假每日一题——贝茜放慢脚步
贝茜放慢脚步问题描述奶牛贝茜正在参加冬季哞林匹克运动会的越野滑雪比赛。她以每秒 1 米的速度出发。但是,随着时间的推移,她变得越来越疲倦,她开始放慢脚步。每次放慢脚步,贝茜的速度都会降低:减速一次后,她以每秒 1/2 米的速度移动,减速两次后,则以每秒 1/3 米的速度移动,依此类推。你将被告知何时何地贝茜会减速。当减速信息格式为:T 17意味着,贝茜在某个时间点减速,本例表示比赛开始第 17 秒贝茜减速。当减速信息格式为:D 10意味着,贝茜在某个地点减速,本例表示在行进 10
2022-01-26 14:49:29 776
原创 寒假每日一题——公平摄影
公平摄影问题描述农夫约翰的 N 头奶牛站在一维长围栏的不同位置。第 i 头牛位于位置 xi,其所属品种为 bi(根西岛牛或荷斯坦牛)。所有奶牛的位置各不相同。约翰想给一段连续区间内的奶牛拍摄一张照片,用来在乡村集市上展览。但是我们希望他所有品种的奶牛都能在照片中得到公平的展示。因此,他希望确保无论照片中出现哪些品种的奶牛,每种品种的奶牛在照片中的数量都必须相等。例如,一张照片中只包含荷斯坦牛是可以的,包含荷斯坦牛和根西岛牛各 27 头也没问题,但是包含 10 头荷斯坦牛和 9 头根西岛牛则不
2022-01-25 17:58:23 175
原创 寒假每日一题——愤怒的奶牛
愤怒的奶牛问题描述奶牛贝茜设计了一款她认为必火的游戏:愤怒的奶牛。游戏设定(她坚信这是她的原创)是玩家用一个弹弓将一头奶牛射向一个数轴,数轴的不同位置上分布着一些干草捆。奶牛以足够的力量砸向某个干草捆,并使得该干草捆发生爆炸,爆炸可能会不断引起连锁反应,导致更多的干草捆发生爆炸。目标是用一头奶牛引起的连锁反应引爆尽可能多的干草捆。共有 N 个干草捆位于数轴中的不同整数位置,其坐标依次为 x1,x2,…,xN。如果将奶牛射向位于位置 x 的干草捆,则该干草捆发生爆炸,爆炸半径为 1,爆炸将吞噬
2022-01-25 15:36:11 2663
原创 算法基础课——走迷宫(BFS)
走迷宫问题描述给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m) 处,至少需要移动多少次。数据保证 (1,1) 处和 (n,m) 处的数字为 0,且一定至少存在一条通路。输入格式第一行包含两个整数 n 和 m。接下来 n 行,每行包含 m 个整数(0 或 1),表示完整的二维
2022-01-25 11:56:16 2201
原创 寒假每日一题——贝茜的报复
贝茜的报复问题描述农夫约翰和奶牛贝茜喜欢在业余时间互相出数学题。约翰给贝茜出了一道相当难的问题,导致她没能解决。现在,她希望通过给约翰出一道有挑战性的难题来报复他。贝茜给了约翰一个表达式 (B+E+S+S+I+E)(G+O+E+S)(M+O+O),其中包含七个变量 B,E,S,I,G,O,M(O 是变量,不是零)。对于每个变量,她给约翰一个列表,表中包含该变量可采用的最多 20 个整数值。她要求约翰计算,共有多少种给变量赋值的方法可以使得表达式的计算结果为偶数。输入格式第一行包含一个整数
2022-01-24 21:28:30 314
原创 寒假每日一题——奶牛慢跑
奶牛慢跑问题描述奶牛们又出去锻炼蹄子去了!有 N 头奶牛在无限长的单行道上慢跑,且跑步方向为坐标值增大的方向。每头奶牛在跑道上开始奔跑的位置互不相同,一些奶牛的奔跑速度可能相同,也可能不同。由于跑道是单行道,十分狭窄,奶牛们无法相互超越。当一头速度很快的牛追上另一头牛时,她必须减速至与另一头牛速度相同以免发生碰撞,并成为同一跑步小组的一员。此时,两头牛可以视为在同一点上。最终,再也没有奶牛会撞到(追上)其他奶牛了。约翰想知道在这种情况下,会剩下多少个跑步小组。输入格式第一行包含整数 N.
2022-01-23 11:57:12 232
转载 寒假每日一题——COW
COW问题描述奶牛贝茜在她最喜欢的牧场中发现了一块石碑,上面刻有神秘的碑文。碑文的文字似乎来自一种神秘的古代语言,可看作一个只包含 C,O,W 三种字符的字符串。尽管贝茜无法解密该文字,但是她很欣赏 C,O,W 按顺序构成她最喜欢的单词 COW。她想知道 COW 在碑文中一共出现了多少次。她不介意 C,O,W 之间是否存在其他字符,只要这三个字符按正确的顺序出现即可。她也不介意多个不同的 COW 是否共享了一些字符。例如,COW 在 CWOW 中只出现一次,在 CCOW 中出现两次,在 CC
2022-01-23 11:06:13 277
原创 寒假每日一题——粉刷栅栏
粉刷栅栏问题描述农夫约翰发明了一种绝妙的方法来粉刷牛棚旁边的长栅栏(把栅栏想象成一维的数轴)。他只需要在他最喜欢的奶牛贝茜身上挂一个刷子,然后在一旁悠闲的喝凉水就行了。贝茜沿着栅栏来回走动时,会将她走过的栅栏部分涂上油漆。贝茜从栅栏上的位置 0 处开始,共进行 N 次移动。移动可能形如 10 L,表示向左移动 10 单位距离,也可能形如 15 R,表示向右移动 15 单位距离。给定贝茜的 N 次移动列表,约翰想知道至少被涂抹了 2 层油漆的区域的总长度。整个行进过程中,贝茜距离出发地的距离不
2022-01-22 18:09:41 165
原创 算法基础课——差分
差分问题描述输入一个长度为 n 的整数序列。接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数 n 和 m。第二行包含 n 个整数,表示整数序列。接下来 m 行,每行包含三个整数 l,r,c表示一个操作。输出格式共一行,包含 n 个整数,表示最终序列。数据范围1 ≤ n, m ≤ 100000,1 ≤ l ≤ r ≤ n,−1000 ≤ c ≤ 1000,−100
2022-01-22 15:51:27 290
原创 寒假每日一题——打乱字母
打乱字母问题描述农夫约翰将按字典序排列的 N 头奶牛的名字列表贴在了牛棚的门上。每个奶牛的名字都由一个长度介于 1 到 20 之间的由小写字母构成的唯一字符串表示。麻烦制造者贝茜将列表中的奶牛名字重新排序打乱了列表。此外,她还对每头奶牛的名字中的字母顺序进行了重新排列(也可能保持不变)。给定修改过后的列表,请帮助约翰确定列表中的每个名字可能出现在原始列表中的最低和最高位置。输入格式第一行包含整数 N。接下来 N 行,按照修改过后列表的顺序,给出了修改过后的奶牛的名字。输出格式共 N 行
2022-01-22 13:56:35 188
原创 寒假每日一题——马蹄铁
马蹄铁问题描述尽管奶牛贝茜发现每个平衡括号字符串都很美观,但她特别喜欢被她称为“完全”平衡的括号字符串----一个由 ( 构成的字符串后接一个长度相同的 ) 构成的字符串。例如:(((())))有一天,当贝茜穿过牛棚时,她发现地面上有一个 N×N 的马蹄铁矩阵。每个马蹄铁的方向都看上去像 ( 或 )。从矩阵的左上角开始,贝茜希望四处走动以拾起马蹄铁,使得她捡起的马蹄铁按顺序构成的括号字符串是完全平衡的。请计算她能得到的最长完全平衡括号字符串的长度。每一步中,贝茜可以沿上下左右四个方向移动。
2022-01-22 11:19:42 143
原创 寒假每日一题——岛
岛问题描述每当下雨时,农夫约翰的田地总是被洪水淹没。由于田地不是完全水平的,所以一些地方充满水后,留下了许多被水隔开的“岛”。约翰的田地被描述为由 N 个连续高度值 H1,…,HN 指定的一维场景。假设该场景被无限高的围墙包围着,请考虑暴雨期间发生的情况:最低处首先被水覆盖,形成一些不连贯的岛,随着水位的不断上升,这些岛最终都会被覆盖。一旦水位等于一块田地的高度,那块田地就被认为位于水下。上图显示了一个示例:在左图中,我们只加入了刚好超过 1 单位的水,此时剩下 4 个岛(最大岛屿剩余数量
2022-01-21 22:43:19 203 1
原创 飞行员兄弟
飞行员兄弟与费解的开关类似问题描述“飞行员兄弟”这个游戏,需要玩家顺利的打开一个拥有 16 个把手的冰箱。已知每个把手可以处于以下两种状态之一:打开或关闭。只有当所有把手都打开时,冰箱才会打开。把手可以表示为一个 4×4 的矩阵,您可以改变任何一个位置 [i,j] 上把手的状态。但是,这也会使得第 i 行和第 j 列上的所有把手的状态也随着改变。请你求出打开冰箱所需的切换把手的次数最小值是多少。输入格式输入一共包含四行,每行包含四个把手的初始状态。符号 + 表示把手处于闭合状态,而符号
2022-01-21 18:18:55 121 1
原创 算法基础课——DFS——n-皇后问题
n-皇后问题1.问题描述n−皇后问题是指将 n 个皇后放在 n×n 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。现在给定整数 n,请你输出所有的满足条件的棋子摆法。输入格式共一行,包含整数 n。输出格式每个解决方案占 n 行,每行输出一个长度为 n 的字符串,用来表示完整的棋盘状态。其中 . 表示某一个位置的方格状态为空,Q 表示某一个位置的方格上摆着皇后。每个方案输出完成后,输出一个空行。注意:行末不能有多余空格。输出方案的顺序任意
2022-01-21 16:35:24 233
原创 寒假每日一题——拖拉机
拖拉机问题描述干了一整天的活,农夫约翰完全忘记了他把拖拉机落在田地中央了。他的奶牛非常调皮,决定对约翰来场恶作剧。她们在田地的不同地方放了 N 捆干草,这样一来,约翰想要开走拖拉机就必须先移除一些干草捆。拖拉机的位置以及 N 捆干草的位置都是二维平面上的整数坐标点。拖拉机的初始位置上没有干草捆。当约翰驾驶拖拉机时,他只能沿平行于坐标轴的方向(北,南,东和西)移动拖拉机,并且拖拉机必须每次移动整数距离。例如,驾驶拖拉机先向北移动 2 单位长度,然后向东移动 3 单位长度。拖拉机无法移动到干草
2022-01-20 18:49:45 523
转载 双端队列广搜——电路维修
双端队列广搜——电路维修双端队列用于解决图中权值只有0或1的最短路问题用双端队列替换掉dijksra的优先队列,可以让时间复杂度少一个log(n)操作:每次从队头取出元素,并进行拓展其他元素时1、若拓展某一元素的边权是0,则将该元素插入到队头2、若拓展某一元素的边权是1,则将该元素插入到队尾与堆优化Dijkstra 一样,必须在出队时才知道每个点最终的最小值,而和一般的bfs不一样,原因是如下图所示问题描述达达是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女翰翰,从而被
2022-01-20 12:19:34 112
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人