自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL | DML SQL语句 | 数据操作语言 | Data Manufacture Language

DML SQL 语句DML 是指Data Manufacture Language,数据操作语言是指读写数据的SQL语句。包括插入、删除、修改、查询数据等。插入数据**使用

2019-05-18 14:14:54 325

原创 MySQL | DDL SQL语句 | 数据定义语言 | Data Defination Language

DDL SQL 语句DDL是指 Data Defination Language,数据定义语言,包括创建、删除、修改数据库表、列等的SQL语句。列出数据库模式数据库模式(Schema)。表建立在不同的数据库模式中。通常一个应用程序对应一个数据库模式。数据库模式保证多个应用程序可以使用同一个MySQL服务器,但是却互不干扰。使用SHOW DATABASE列出所有的数据库模式show dat...

2019-05-17 22:40:36 353

原创 启发式搜索 | 十六格拼图 | 15Puzzle | C/C++实现

问题描述十六格拼图就是在4×4的格子上摆放15块拼图,空出一个格子,玩家要借助这1个空格上下左右滑动拼图,最终完成整幅图画我们像下面这样将空格定为0,然后给15块拼图分别标上1到15号1 2 3 46 7 8 05 10 11 129 13 14 151次操作可以将1块拼图移向空格,当15块拼图全部与下述位置吻合时完成游戏1 2 3 45 6 7 89 10 11 1213 ...

2019-02-20 22:23:02 2069

原创 九宫格拼图 | 8Puzzle | C/C++实现

问题描述九宫格拼图就是在3×3的格子上摆放8块拼图,空出1个格子,玩家要借助这1个空格上下左右滑动拼图,最终完成整幅图画我们像下面这样将空格定为0,然后给8块拼图分别标上1到8号1 3 04 2 57 8 61次操作可以将1块拼图移向空格,当8块拼图全部与下述位置吻合时完成游戏1 2 34 5 67 8 0现给定九宫格拼图的初始状态,请编写一个程序,求出完成该九宫格拼图最少需要...

2019-02-20 16:02:49 7590 2

原创 八皇后问题 | Queens Problem | C/C++实现

问题描述所谓八皇后问题,是指在8×8的国际象棋棋盘上放置8个皇后,保证任意2个皇后都无法相互攻击的问题。国际象棋中的皇后可以向8个方向移动任意格现已在棋盘上摆放了k个皇后,且这k个格子的位置已给出。请编写一个程序,根据给出的k个有皇后的格子,输出已摆放8个皇后的国际象棋棋盘输入:第1行输入整数k。接下来k行输入已放有皇后的格子,每个格子用2个整数r、c表示。r、c分别为从0开始的国际象棋棋...

2019-02-20 12:35:44 490

原创 幂乘 | Power | C/C++实现

问题描述现有两个整数m、n,求mnm^nmn除以1000000007之后的余数输入:输入整数m、n,用1个空格隔开,占1行输出:输出mnm^nmn除以1000000007之后的余数,占1行输出:1 ≤ m ≤ 1001 ≤ n ≤ 10910^9109输入示例5 8输出示例390625讲解如果用最直接的方法求xnx^nxn,我们需要进行n - 1次乘法运算,算法复杂...

2019-02-19 23:21:57 1154 1

原创 最大公约数 | Greatest Common Divisor | C/C++实现

问题描述请编写一个程序,输入两个自然数x、y,求它们的最大公约数对于两个整数x和y,如果x/d和y/d余数都为0,则d称为x和y的公约数,其中最大的称为x和y的最大公约数输入:输入x、y,用1个空格隔开,占1行输出:输出最大的公约数,占1行限制:1 ≤ x,y ≤ 10910^9109提示:对于整数x、y,如果x ≥ y,则x与y的最大公约数等于y与x%y的最大公约数输入示例...

2019-02-19 22:30:11 993

原创 质数检验 | 埃拉托色尼筛选法 | Prime Numbers | C/C++实现

问题描述指数指约数仅为1及其本身的自然数。比如8个最小的质数为2、3、5、7、11、13、17、19。1不是质数。请编写一个程序,输入n个整数,输出其中质数的个数输入:第1行输入n。接下来n行给出n个整数输出:输出质数的个数,占1行限制:1 ≤ n ≤ 100002 ≤ 给出的整数 ≤ 10810^8108输入示例6234567输出示例4讲解下面是检验...

2019-02-19 19:16:06 1005

原创 动态规划 | 最大长方形 | Largest Rectangle | C/C++实现

问题描述现有H×WH×WH×W个边长为1cm的正方形瓷砖排列在一起,其中有一部分瓷砖沾有污迹,求仅由干净瓷砖构成的最大长方形的面积。输入:HHH WWWc1,1c_{1,1}c1,1​ c1,2c_{1,2}c1,2​ … c1,Wc_{1,W}c1,W​c2,1c_{2,1}c2,1​ c2,2c_{2,2}c2,2​ … c2,Wc_{2,W}c2,W​…cH,1c_{H,1}c...

2019-02-19 16:11:32 900

原创 动态规划 | 最大正方形 | Largest Square | C/C++实现

问题描述现有H×WH×WH×W个边长为1cm的正方形瓷砖排列在一起,其中有一部分瓷砖沾有污迹,求仅由干净瓷砖构成的最大正方形的面积。输入:HHH WWWc1,1c_{1,1}c1,1​ c1,2c_{1,2}c1,2​ … c1,Wc_{1,W}c1,W​c2,1c_{2,1}c2,1​ c2,2c_{2,2}c2,2​ … c2,Wc_{2,W}c2,W​…cH,1c_{H,1}c...

2019-02-19 11:39:51 1341 1

原创 动态规划 + 二分搜索 | 最长递增子序列 | Longest Increasing Subsequence | C/C++实现

问题描述求数列A=a0,a1,...,an−1A=a_0,a_1,...,a_{n-1}A=a0​,a1​,...,an−1​的最长递增子序列(LIS)。如果数列A的子序列ai0,ai1,...,aika_{i_0},a_{i_1},...,a_{i_k}ai0​​,ai1​​,...,aik​​满足0 ≤ i0i_0i0​ ≤ i1i_1i1​ ≤ … ≤ iki_kik​ ≤ n且ai0a_...

2019-02-18 22:26:17 337

原创 动态规划 | 背包问题 | Knapsack Problem | C/C++实现

问题描述现有价值为viv_ivi​、重量为wiw_iwi​的N个物品以及容量为W的背包。请根据下述条件选择物品装入背包:所选物品的总价值尽可能高所选物品的总重量不超过W。输入:第1行输入2个整数N、W,用空格隔开。接下来N行输入第 i 个物品的价值viv_ivi​与重量wiw_iwi​,每个物品占1行,相邻数组之间用空格隔开。输出:输出总价值的最大值,占1行。限制:1 ≤ N ≤...

2019-02-18 17:55:44 637

原创 动态规划 | 硬币问题 | Coin Changing Problem | C/C++实现

问题描述现有面值为c1,c2,...,cmc_1,c_2,...,c_mc1​,c2​,...,cm​元的m种硬币,求支付n元时所需硬币的最少枚数。各面值的硬币可重复使用任意次。输入:nnn mmmc1c_1c1​ c2c_2c2​ … cmc_mcm​第1行输入整数n和整数m,用1个空格隔开。第2行输入各硬币的面值,相邻面值间用1个空格隔开。输出:输出所需硬币的最少枚数,占1行。...

2019-02-18 12:05:50 3264

原创 计算几何学 | 线段相交问题 | 平面扫描 | Segment Intersections: Manhattan Geometry | C/C++实现 | 曼哈顿几何

问题描述现给出n条平行于x轴或y轴的线段,请输出其交点数。输入:第1行输入线段数n。接下来n行输入n条线段。每条线段按照下述格式给出:x1x_1x1​ y1y_1y1​ x2x_2x2​ y2y_2y2​上面分别为线段两端点的坐标。各输入数据均为整数。输出:输出交点的总数,占1行。限制:1 ≤ n ≤ 100000互相平行的2条或更多线段之间不存在重叠的点或线段交点数不超过1...

2019-02-17 22:42:30 1366

原创 计算几何学 | 凸包 | Convex Hull | C/C++实现

问题描述求二维平面上的点集合P的凸包(Convex Hull)。凸包是指包含点集合P中所有点的最小凸多边形。请列举出该多边形的边及顶点上的所有点。输入:第1行输入点的数量n。接下来n行输入第 i 个点pip_ipi​的坐标,坐标以2个整数xix_ixi​、yiy_iyi​的形式给出。输出:第1行输出表示凸包的凸多边形的顶点数。接下来的几行输出凸多边形各个顶点的坐标(x, y)。输出时以凸...

2019-02-17 20:14:43 1631

原创 计算几何学 | 点的内包 | Polygon-Point Containment | C/C++实现

问题描述对于多边形g与点p,p位于g内时输出2,p位于g的边上时输出1,其余情况输出0。多边形g由其顶点的序列p1,p2,...,pnp_1,p_2,...,p_np1​,p2​,...,pn​表示,相邻两点pip_ipi​、pi+1p_{i+1}pi+1​(1 ≤ i ≤ n-1)相连构成g的边。另外,点pnp_npn​和p1p_1p1​相连的线也是g的边。请注意,g不一定是凸多边形。输...

2019-02-17 17:17:29 892 1

原创 计算几何学 | 圆与圆的交点 | Cross Points of Circles | C/C++实现

问题描述求2个圆c1、c2的交点。输入:输入按照下述格式给出:c1x c1y c1rc2x c2y c2rc1x、c1y、c1r分别表示第1个圆的圆心x坐标、y坐标以及半径。同理,c2x、c2y、c2r表示第2个圆的坐标与半径。上述输入均为整数。输出:按下述规则输出交点p1、p2的坐标(x1, y1)、(x2, y2),相邻数据之间用空格隔开:只有1个交点时输出2个相同的坐标先...

2019-02-17 14:06:23 3316 1

原创 计算几何学 | 圆与直线的交点 | Cross Points of a Circle and a Line | C/C++实现

问题描述求圆c与直线lll的交点。输入:输入按照下述格式给出:cxcxcx cycycy rrrqqqLine1Line_1Line1​Line2Line_2Line2​…LineqLine_qLineq​第1行输入圆心坐标cx,cy以及半径r。第2行输入问题数q。接下来q行按照下述格式输入q个直线LineiLine_iLinei​作为问题。x1x_1x1​ y1y_1y1...

2019-02-17 11:27:42 7494 5

原创 计算几何学 | 线段的交点 | Cross Point | C/C++实现

问题描述输出线段s1、s2交点的坐标。设s1的端点为p0、p1,s2的端点为p2、p3。输入:第1行输入问题数q。接下来q行给出q个问题。各问题线段s1、s2的坐标按照以下格式给出:xp0x_{p0}xp0​ yp0y_{p0}yp0​ xp1x_{p1}xp1​ yp1y_{p1}yp1​ xp2x_{p2}xp2​ yp2y_{p2}yp2​ xp3x_{p3}xp3​ yp3y_{...

2019-02-16 23:39:35 3565 3

原创 计算几何学 | 判断线段相交 | Intersection | C/C++实现

问题描述对于线段s1、s2,如果相交则输出“1”,否则输出“0”。设s1的端点为p0、p1、,s2的端点为p2、p3。输入:第1行输入问题数q。接下来q行给出q个问题。各问题线段s1、s2的坐标按照以下格式给出:xp0x_{p0}xp0​ yp0y_{p0}yp0​ xp1x_{p1}xp1​ yp1y_{p1}yp1​ xp2x_{p2}xp2​ yp2y_{p2}yp2​ xp3x_...

2019-02-16 19:33:30 2568 1

原创 计算几何学 | 距离 | Distance | C/C++实现

问题描述输出线段s1、s2之间的距离。设s1的端点为p0、p1,s2的端点为p2、p3。输入:第1行输入问题数q。接下来q行给出q个问题。各问题线段s1、s2的坐标按照以下格式给出:xp0x_{p0}xp0​ yp0y_{p0}yp0​ xp1x_{p1}xp1​ yp1y_{p1}yp1​ xp2x_{p2}xp2​ yp2y_{p2}yp2​ xp3x_{p3}xp3​ yp3y_{p...

2019-02-16 18:47:51 1925

原创 计算几何学 | 逆时针方向 | Counter-Clockwise | C/C++实现

问题描述对于三个点p0、p1、p2,请按照下列情况进行输出:p0、p1、p2成逆时针方向 COUNTER_CLOCKWISEp0、p1、p2成顺时针方向 CLOCKWISEp2、p0、p1依次排列在同一直线上 ONLINE_BACKp0、p1、p2依次排列在同一直线上 ONLINE_FRONTp2在线段p0p1上 ON_SEGMENT输入:xp0x_{p0}xp0​ yp0y_{p...

2019-02-16 16:24:06 1546

原创 计算几何学 | 映像 | Reflection | C/C++实现

问题描述对于三个点p1、p2、p,设以通过p1、p2的直线为对称轴与点p成线对称的点为x,求点x的坐标(点p对于直线p1p2的映像)。输入:输入按照以下格式给出:xp1x_{p1}xp1​ yp1y_{p1}yp1​ xp2x_{p2}xp2​ yp2y_{p2}yp2​qqqxp0x_{p0}xp0​ yp0y_{p0}yp0​xp1x_{p1}xp1​ yp1y_{p1}yp1​...

2019-02-16 11:02:31 556

原创 计算几何学 | 投影 | Projection | C/C++实现

问题描述对于给定的三个点p1、p2、p,从点p向通过p1、p2的直线引一条垂线,求垂足x的坐标。(点p在直线p1p2上的投影)输入:输入按以下格式给出:xp1x_{p1}xp1​ yp1y_{p1}yp1​ xp2x_{p2}xp2​ yp2y_{p2}yp2​qqqxp0x_{p0}xp0​ yp0y_{p0}yp0​xp1x_{p1}xp1​ yp1y_{p1}yp1​…xp...

2019-02-15 22:42:34 2381

原创 计算几何学 | 直线的正交/平行判定 | Parallel/Orthogonal | C/C++实现

问题描述对于直线s1、s2,当二者平行时输出2,正交时输出1.s1通过点p0、p1,s2通过点p2、p3。输入:第1行输入问题数q。接下来q行给出q个问题。各问题的点p0、p1、p2、p3的坐标按照以下格式给出:xp0x_{p0}xp0​ yp0y_{p0}yp0​ xp1x_{p1}xp1​ yp1y_{p1}yp1​ xp2x_{p2}xp2​ yp2y_{p2}yp2​ xp3x_{...

2019-02-15 10:34:44 2167 3

原创 计算几何学 | 几何对象的基本元素与表现 | C/C++实现

点与向量用程序求解几何问题,先要想办法用编程中的数据结构来表示几何对象。这里,使用向量就是解决办法之一。我们将既有大小又有方向的量称为向量。相对地,只有大小没有方向的量称为标量。为了用数据结构表示向量,将向量考虑成从原点O(0, 0)指向对象点P(x, y)的有向线段。向量落实在纸面上容易给人带来一种误解,觉得向量可以表示平面上的线段。但实际上,向量只具有大小和方向,而线段却要由两个端点确定...

2019-02-14 13:25:57 853

原创 最小生成树 | Minimum Spanning Tree | 克鲁斯卡尔Kruskal算法 | C/C++实现

本文为克鲁斯卡尔算法(Kruskal’s Algorithm)对于求最小生成树的另一种算法:普里姆算法(Prim’s Algorithm)请见:最小生成树 | Minimum Spanning Tree | 普里姆Prim算法 | C/C++实现问题描述请编写一个程序,对于给定的加权图G=(V,E)G=(V,E)G=(V,E),输出其最小生成树的各边权值总和。输入:∣V∣|V|∣V∣ ∣...

2019-02-13 16:55:06 505

原创 树的直径 | Diameter of a Tree | C/C++实现

问题描述请求出权值非负的无向树T的直径。我们将树的最远结点之间的距离称为树的直径。输入:输入按照以下形式给出nnns1s_1s1​ t1t_1t1​ w1w_1w1​s2s_2s2​ t2t_2t2​ w2w_2w2​…sn−1s_{n-1}sn−1​ tn−1t_{n-1}tn−1​ wn−1w_{n-1}wn−1​第1行输入表示树结点数的整数n。树的各结点编号分别为0到n-1...

2019-02-13 14:39:25 1145

原创 关节点 | Articulation Point | C/C++实现

问题描述请列举出无向图G=(V,E)G=(V,E)G=(V,E)的关节点。在连通图G中,如果删除顶点u及从u出发的所有边后所得的子图不连通,我们就称顶点u为图G的关节点(Articulation Point)或连接点。输入:输入按照以下形式给出∣V∣|V|∣V∣ ∣E∣|E|∣E∣s0s_0s0​ t0t_0t0​s1s_1s1​ t1t_1t1​…s∣E∣−1s_{|E|-1}...

2019-02-13 12:17:27 1356

原创 拓扑排序 | Topological Sort | C/C++实现

问题描述有向无环图DAG可用来表示各种事物的顺序。比如以各项工作为顶点,用有向边来表示工作顺序。如果对这种表示顺序关系的DAG进行拓扑排序,我们便能得到一个恰当的工作顺序。对于一个有向无环图DAG,只要存在边(u, v),就让u在线性序列中位于v之前,这就是拓扑排序。请编写一个程序,输出对给定DAG G进行拓扑排序后的顶点顺序。输入:输入按照以下形式给出∣V∣|V|∣V∣ ∣E∣|E|∣...

2019-02-06 20:33:33 631

原创 所有点对间最短路径 | 弗洛伊德算法 | All Pairs Shortest Path | C/C++实现 | 大年初一写CSDN

问题描述请例举出加权有向图G=(V,E)G=(V,E)G=(V,E)中每两点之间的最短路径的长度。输入:输入按照以下形式给出∣V∣|V|∣V∣ ∣E∣|E|∣E∣s0s_0s0​ t0t_0t0​ d0d_0d0​s1s_1s1​ t1t_1t1​ d1d_1d1​…s∣E∣−1s_{|E|-1}s∣E∣−1​ t∣E∣−1t_{|E|-1}t∣E∣−1​ d∣E∣−1d_{|E|...

2019-02-05 18:46:08 2237 2

原创 范围搜索 | KD树 | Range Search (KD Tree) | C/C++实现 | 大年三十写CSDN

问题描述从拥有多个属性的报表集合(数据库)中,寻找具有特定属性且位于指定范围内的元素,这列问题被称为范围搜索。请编写一个程序,对于二维平面上点的集合,例举出给定范围内的点。另外,给定的点集合无法进行点的添加和删除操作。输入:nx0 y0x1 y1…xn-1 yn-1qsx0 tx0 sy0 ty0sx1 tx1 sy1 ty1…sxq-1 txq-1 sy1-1 tyq-...

2019-02-04 14:42:13 2714

原创 互质的集合 | Disjoint Set: Union Find Tree | C/C++实现

问题描述请实现一个管理互质动态集合S = {S1, S2, …, Sk}的程序。首先读取整数n,创建由0, 1, …, n-1这样n个互不相同的元素组成的集合。然后读取整数q,对集合进行q个查询操作。查询包含以下2种:unite(x, y):合并包含x的集合SxS_xSx​与包含y的集合SyS_ySy​same(x, y):判断x与y是否包含于同一集合输入:n qcom1 x1 y...

2019-02-03 23:40:11 751 1

原创 单源最短路径2 | Dijkstra狄克斯特拉 | Single Source Shortest Path 2 | C/C++实现

问题描述请编写一个程序,求给定加权有向图G=(V,E)G=(V,E)G=(V,E)的单源最短路径的成本。请以G的顶点0为起点,输出0到各顶点v的最短路径上各边权值的总和d[v]。输入: 第1行输入G的顶点数n。接下来n行按如下格式输入各顶点u的邻接表u k v1 c1 v2 c2 … vk ckG中的各顶点编号分别为0至n-1。u代表顶点的编号,k代表u的出度。vi(i = 1, 2, …...

2019-02-02 21:55:37 358

原创 单源最短路径1 | Dijkstra狄克斯特拉 | Single Source Shortest Path 1 | C/C++实现

问题描述请编写一个程序,求给定加权图有向图G=(V,E)G=(V,E)G=(V,E)的单源最短路径的成本。请以G的顶点0为起点,输出0到各顶点v的最短路径上各边权值的总和d[v]。输入: 第1行输入G的顶点数n。接下来n行按如下格式输入各顶点u的邻接表:u k v1 c1 v2 c2 … vk ckG各顶点编号分别为0至n-1。u代表顶点的编号,k代表u的出度。vi (i = 1, 2, ...

2019-02-02 17:32:28 347

原创 优先级队列 | Priority Queue | C/C++实现

问题描述优先级队列(Priority Queue)是一种数据结构,其存储的数据集合S中,各个元素均包含键值。优先级队列主要进行下述操作:insert(S, k):向集合中插入元素kextractMax(S):从S中删除键值最大的元素并返回该键值请编写一个程序,对优先级队列S执行insert(S, k)和extractMax(S)。队列元素为整数,键值为其自身。输入: 对优先级队列S输入多...

2019-02-02 12:35:21 484

原创 最大/最小堆 | Maximum Heap | C/C++实现

问题描述请根据以下伪代码编写一个程序,使用给定数组生成最大堆。maxHeapify(A, i)用于从根结点 i 向叶结点方向寻找A[i]值的恰当位置,从而使以 i 为根结点的子树成为最大堆。这里我们设堆的大小为H。maxHeapify(A, i) l = left(i) r = right(i) //从左子结点、自身、右子结点中选出值最大的结点 if l <= H &&...

2019-02-02 11:13:31 880

原创 完全二叉树 | Complete Binary Tree | C/C++实现

问题描述请编写一个程序,读取以完全二叉树形式表示的二叉堆,并按照下述格式输出二叉堆各结点的数据。node id: key = k, parent key = pk, left key = lk, right key = rk,其中id为结点编号(下标),k为结点的值,pk为父结点的值,lk为左子结点的值,rk为右子结点的值。当结点不存在时,不进行输出。输入: 第1行输入堆的大小H。接下来1...

2019-02-02 10:13:56 845

原创 二叉搜索树——删除 | Binary Search Tree 3 | C/C++实现

问题描述请编写一个程序,在二叉搜索树——搜索的基础上添加delete命令,对二叉搜索树T执行下述命令:insert k:在T中插入键值kfind k:报告T中是否包含键值kdelete k:删除包含键值k的结点print:分别用树的中序遍历和前序遍历算法输出键值delete k命令用于从二叉搜索树T中删除包含给定键值k的结点z。删除z时需要根据下述算法讨论三种情况,以确保树在更新链接后...

2019-02-01 13:11:41 351

原创 二叉搜索树——搜索 | Binary Search Tree 2 | C/C++实现

问题描述请编写一个程序,在二叉搜索树——插入的基础上添加find命令,对二叉搜索树T执行下述命令:insert k:在T中插入键值kfind k:报告T中是否包含键值kprint:分别用树的中序遍历和前序遍历算法输出键值输入: 第1行输入命令数m。接下来m行以insert k、find k、print的格式输入命令,每个命令占一行。输出: 每执行1次find k命令后,当T含有k时输出...

2019-01-31 19:36:46 211

空空如也

空空如也

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

TA关注的人

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