- 博客(16)
- 问答 (3)
- 收藏
- 关注
原创 算法与数据结构-位运算
求a^b对m取模思路 : 快速幂Raising Modulo Numbers - POJ 1995 - Virtual Judge (vjudge.net)类似题 : 剑指 Offer 16. 数值的整数次方 - 力扣(LeetCode)最短Hamilton路径91. 最短Hamilton路径 - AcWing题库暴力枚举时间复杂度O(n*n!)思路:二进制状态压缩 O(n2*2n)起床困难综合症[P2114 NOI2014] 起床困难综合症 - 洛谷 | 计算机科学教育新生态 (luogu.co
2022-06-30 16:31:55
278
1
原创 算法与数据结构-并查集
并查集的初始化并查集的Get操作并查集的Merge操作关键词: “扩展域”与“边带权”X-Plosives - UVA 1160 - Virtual Judge (vjudge.net)Corporative NetworkCCO Preparation Test 5 P2 - Corporative Network - DMOJ ccoprep5p2 - Virtual Judge (vjudge.net)P1955 [NOI2015] 程序自动分析[P1955 NOI2015] 程序
2022-06-28 20:51:02
649
原创 算法与数据结构-思维体操
Dragon of Loowater - UVA 11292 - Virtual Judge (vjudge.net)Description思路:能力强的骑士开价高是合理的,但如果被你派去砍一个很弱的头,就是浪费人才了。因此,可以把雇佣来的骑士按照能力从小到大排序,所有头按照直径从小到大排序,一个一个砍就可以了。当然,不能砍掉“当前需要砍的头”的骑士就不要雇佣了。突击战Commando War - UVA 11729 - Virtual Judge (vjudge.net)Description思路:直
2022-06-27 17:45:27
226
原创 算法与数据结构-动态规划
求解斐波那契数列的递归算法计算过程中存在大量的重复计算为此避免重复设计,设计一个dp数组,dp[i]存放Fib(i)的值,首先设置dp[1]和dp[2]均为1,再让i从3到n循环以计算dp[3]到dp[n]的值,最后返回dp[n]即Fib1(n)。对应的算法1如下:执行Fib1(5)时的输出结果如下:(1)计算出Fib1(1)=1(2)计算出Fib1(2)=1(3)计算出Fib1(3)=2(4)计算出Fib1(4)=3(5)计算出Fib1(5)=5其执行过程改变为自底向上,即先求出子问题解,将计算结果存放
2022-06-07 16:34:27
1135
原创 算法与数据结构-贪心法
贪心法的基本思路是在对问题求解时总是做出在当前看来是最好的选择,也就是说贪心法不从整体最优上加以考虑,所做出的仅是在某种意义上的局部最优解。 人们通常希望找到整体最优解,所以采用贪心法需要证明设计的算法确实是整体最优解或求解了它要解决的问题。1 贪心选择性质所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。也就是说,贪心法仅在当前状态下做出最好选择,即局部最优选择,然后再去求解做出这个选择后产生的相应子问题的解。2 最优子结构性质
2022-06-06 15:16:53
1555
原创 算法与数据结构-分支限界法
分枝限界法类似于回溯法,也是一种在问题的解空间树上搜索问题解的算法。 但在一般情况下,分枝限界法与回溯法的求解目标不同。回溯法的求解目标是找出解空间树中满足约束条件的所有解,而分枝限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。所谓“分枝”就是采用广度优先的策略,依次搜索活结点的所有分枝,也就是所有相邻结点。求最优解时,选择哪一个子结点? 采用一个限界函数,计算......
2022-06-06 15:14:03
2835
原创 算法与数据结构-回溯法
一个复杂问题的解决方案是由若干个小的决策步骤组成的决策序列,解决一个问题的所有可能的决策序列构成该问题的解空间。应用回溯法求解问题时,首先应该明确问题的解空间。解空间中满足约束条件的决策序列称为可行解。一般来说,解任何问题都有一个目标,在约束条件下使目标达到最优的可行解称为该问题的最优解。问题的解由一个不等长或等长的解向量X={x1,x2,…,xn}组成,其中分量xi表示第i步的操作。 所有满足约束条件的解向量组构成了问题的解空间。 问题的解空间一般用树形式来组织,也称为..
2022-06-05 20:46:26
1851
原创 算法与数据结构-分治法
对于一个规模为n的问题:若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。这种算法设计策略叫做分治法。.........
2022-06-05 20:42:25
1464
原创 贪心法-求解蓄栏保留问题
题目链接:3190 – Stall Reservations (poj.org)采用与求解活动安排问题类似的贪心思路,将所有活动这样排序:结束时间相同按开始时间递增排序,否则按结束时间递增排序。求出一个最大兼容活动子集,将它们安排在一个蓄栏中(蓄栏编号为1);如果没有安排完,再在剩余的活动再求下一个最大兼容活动子集,将它们安排在另一个蓄栏中(蓄栏编号为2),以此类推。也就是说,最大兼容活动子集的个数就是最少蓄栏个数。JAVA://超时import java.util.Arrays;impor
2022-05-17 22:33:52
1629
1
原创 贪心法-求解部分背包问题
【问题描述】设有编号为1、2、…、n的n个物品,它们的重量分别为w1、w2、…、wn,价值分别为v1、v2、…、vn,其中wi、vi(1≤i≤n)均为正数。 有一个背包可以携带的最大重量不超过W。求解目标:在不超过背包负重的前提下,使背包装入的总价值最大(即效益最大化),与0/1背包问题的区别是,这里的每个物品可以取一部分装入背包。问题求解:采用贪心法求解。设xi表示物品i装入背包的情况,0≤xi≤1。根据问题的要求,有如下约束条件和目标函数:于是问题归结为寻找一个满足上述约束条件,并使目标函数达
2022-05-15 15:11:29
2104
原创 分治法-求解循环日程安排问题
【问题描述】设有n=2^k个选手要进行网球循环赛,要求设计一个满足以下要求的比赛日程表:(1)每个选手必须与其他n-1个选手各赛一次。(2)每个选手一天只能赛一次。(3)循环赛在n-1天之内结束。【问题求解】按问题要求可将比赛日程表设计成一个n行n-1列的二维表,其中第i行、第j列表示和第i个选手在第j天比赛的选手。假设n位选手被顺序编号为1、2、…、n(2^k)。由k=1创建k=2的过程由k=2创建k=3的过程 将n=2k问题划分为4部分: (1)左上角:左上角为2k-1个选
2022-05-12 20:55:43
3198
原创 分治法-求解棋盘覆盖问题
【问题描述】有一个2k×2k(k>0)的棋盘,恰好有一个方格与其他方格不同,称之为特殊方格。现在要用如下的L型骨牌覆盖除了特殊方格外的其他全部方格,骨牌可以任意旋转,并且任何两个骨牌不能重叠。请给出一种覆盖方法。用(tr,tc)表示一个象限左上角方格的坐标,(dr,dc)是特殊方格所在的坐标,size是棋盘的行数和列数。用二维数组board存放覆盖方案,用tile全局变量表示L型骨牌的编号(从整数1开始),board中3个相同的整数表示一个L型骨牌。#include<stdio
2022-05-12 20:30:48
340
原创 7-1 求解迷宫从入口到出口的一条最短路径
题目详情求解迷宫从入口到出口的一条最短路径。输入一个迷宫,求从入口通向出口的一条可行最短路径。为简化问题,迷宫用二维数组 int maze[10][10]来存储障碍物的分布,假设迷宫的横向和纵向尺寸的大小是一样的,并由程序运行读入, 若读入迷宫大小的值是n(3<n<=10),则该迷宫横向或纵向尺寸都是n,规定迷宫最外面的一圈是障碍物,迷宫的入口是maze[1][1],出口是maze[n-2][n-2], 若maze[i][j] = 1代表该位置是障碍物,若maze[i][j] = 0代表该位置
2022-05-11 15:12:18
2438
原创 求解N皇后问题-基础递归版
【问题描述】在n×n的方格棋盘上,放置n个皇后,要求每个皇后不同行、不同列、不同左右对角线。如下图所示是6皇后问题的一个解。q[1…6]={2,4,6,1,3,5}对于(i,j)位置上的皇后,是否与已放好的皇后(k,q[k])(1≤k≤i-1)有冲突呢? 设queen(i,n)是在1~i-1行上已经放好了i-1个皇后,用于在i~n行放置n-i+1个皇后,则queen(i+1,n)表示在1~i行上已经放好了i个皇后,用于在i+1~n行放置n-i个皇后。 queen(i+1,n)比queen(
2022-05-09 15:02:49
1312
原创 MySQL学习笔记(基础) - 视图
目录1、概述1.1 什么是视图?为什么使用视图?2、创建视图1.引入库2.读入数据总结1、概述1.1 什么是视图?为什么使用视图?1、视图是一种虚拟表,本身是不具有数据的,占用很少的内存空间。视图建立在已有表的基础上, 视图赖以建立的这些表称为基表。2、视图的创建和删除只影响视图本身,不影响对应的基表。但是当对视图中的数据进行增加、删除和修改操作时,数据表中的数据会相应地发生变化,反之亦然。3、视图,是向用户提供基表数据的另一种表现形式。通常情况下,小型项目的数据库可以不使用视图,但是在大型项
2022-04-25 20:32:24
214
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人