自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 资源 (3)
  • 收藏
  • 关注

原创 详解设计模式之单例模式

1.单例模式概述单例设计模式所解决的问题就是:保证类的对象在内存中唯一,即一个类只有一个对象实例单例模式的结构单例类。只能创建一个实例的类,对象的创建访问类。使用单例类,对象的使用单例模式特点单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例单例模式的优缺点优点:在内存中只有一个对象,节省内存空间;避免频繁的创建销毁对象,可以提高性能;避免对共享资源的多重占用,简化访问;为整个系统提供一个全局访问点。缺点:

2021-06-30 15:02:33 2265

转载 FOJ 1036 1036 四塔问题

一,问题描述二,问题分析参考如下:https://blog.csdn.net/wsqgwp/article/details/9164399三,问题解答#include<iostream>using namespace std;int f[50001]; //打表void init(){ f[0] = 0; int p =...

2020-04-19 15:15:20 220

原创 FOJ Problem 1481 环串

一,问题描述二,问题分析暴力循环破解,我们采用一个集合记录下字符串的所有环串的形式,在通过比较输入的字符串是否存在与集合中,如果存在,ans++三,问题解答#include<iostream>#include<string>#include<vector>#include<set>using namespace ...

2020-04-17 15:37:38 302

原创 FOJ Problem 2210 攻占计划

一,问题描述二,问题分析 分析题目n表示城市数量,m表示城市之间道路的数量,而道路不会形成环路,且输入的a,b表示表示城市a有一条连向城市b的道路,说明是有向图,要破坏一座城市,使得断粮最多,即就是选择一个城市,而这个城市就是 道路中起点次数最多的城市,采用一个数组记录城市作为起点的次数,注意城市的下标是从1开始的,所以数组要多开辟一个空间。三,问题解答#in...

2020-04-15 12:23:57 197

原创 FOJ Problem 1068 An Interesting Set

一,问题描述题目翻译:二,问题分析对于集合S,满足两个条件(二者满足一个就行)1.条件1,显然1-9是满足的,而其他数字的判断可以利用取余来实现2.条件2,可以利用set集合的性质来判断,结合条件1,所有偶数都是满足集合S的3.根据题意,正整数K是小于500的,我们采用打表法,把集合S的前500个元素都记录下来三,问题解答#include<io...

2020-04-14 17:41:43 121

原创 FPJ Problem 2088 最长队名

一,问题描述二,问题分析1.题目简单分析就会有思路,即按照字典顺序排序,并且拼接字符串,按照字典序的话可以直接排序算法,或者采用multiset2.multiset可以保证插入的字符串按顺序排列3.考虑到输入的队员姓名会有重名的情况,所以不采用set而使用multiset三,问题解答#include<iostream>#include<stri...

2020-04-14 16:42:19 202

原创 FOJ Problem 2027 单词问题

一,问题描述二,问题分析1.遍历输入的整个字符串,对每个字符进行判断,判断每个字符是否在字母范文内,并用一个char型数组接收单词2.判断单词是否唯一,我们可以采用map中find()函数3.注意是多个输入,输出格式为按顺序输入单词,一个单词一行三,问题解答#include<iostream>#include<map>#include&...

2020-04-14 16:16:18 200

原创 FOJ Problem 1589 自动机

一,问题描述二,问题分析整个问题就是模拟的一个过程,难点在于对命令的处理1.由于要清空整个队列,采用deque.clear()函数2.命令的输入不同,采取不同的对策三,问题解答#include<iostream>#include<string>#include<deque>using namespace std;...

2020-04-11 21:13:17 103

原创 FOJ Problem 2121 神庙逃亡

一,问题描述二,问题分析简单来说是纯物理问题,水平方向为匀速运动,竖直方向为匀加速运动注意:从离S米直接开始起跳,加速度恒为10只需判断竖直方向的位移是否大于火墙的高度h即可三,问题解答#include<iostream>using namespace std;int main() { int n; cin >> n; for...

2020-04-10 14:23:14 166

原创 输入输出格式

1.scanf函数使用1.1输入格式scanf("控制格式",变量地址);如:scanf("%d",&n); //输入一个int型变量,变量输入后存在变量n中1.2常见数据类型格式符数据类型 格式符 举例 int %d sacnf("%d",&n); long long %lld sacnf("%lld",...

2020-04-10 10:49:04 843

原创 LeetCode 79.单词搜索

一,问题描述二,问题分析整体思路图搜索策略DFS和回溯的思想标记数组用一个二维数组visited数组标记元素是否被使用过循环遍历由于起点并不是唯一的,所以通过两个循环遍历整个数组找到开始的位置,即满足wrod[0]的字母回溯的思想找到满足开始位置后,再开始搜索,搜索的方向为上下左右四个方向,如果满足接下来的条件,便继续搜索,如果不满足便回...

2020-04-06 12:07:53 146

原创 FOJ 1705 众数问题

一,问题描述二,问题分析 该问题最直接的方法,就是用数组记录出现的次数,每出现一次对应的下标就增加一次,但是集合中元素的值可以是负数,所以用数组记录会比较麻烦。这个时候我们考虑map数据结构,map中元素是键值对即 <键,值>,键就可以相当于集合元素值,值相当于集合元素出现的次数。记录完毕后再遍历整个map容器找出值最大的元素即可。三,问题解答...

2020-04-03 20:28:42 164

原创 FOJ 1075 分解素因子

一,问题描述 注意:输入一个测试用例后,第二行会立即输出这个测试用例的结果,并不是等所有测试用例都输入后,再一次性输出所有测试用例正确输入输出格式:2111198282*2*3*3*3*7*13二,问题分析 问题的求解思路如下:首先把所有1到65535范围内的所有素数找出来,并用数组保存,对于每一个测试用例,依次用素数数组...

2020-04-03 16:05:15 117

原创 LeetCode 343.整数拆分

一,问题描述二,问题分析给定整数n,拆分成至少两个整数和,注意至少两个,可以是三个甚至是多个将问题分解dp[i] : 表示整数 i 拆分后得到的最大值dp[2] :2可以分解成1+1,结果是1*1=1dp[3] :3可以分解成1+2,结果是1*2=2dp[4] :4可以分解成1+3或者2+2,其中1*3=3,而若3继续分解的最大值就是dp[3],显然 3>d...

2020-04-03 14:53:19 136

原创 LeetCode 63.不同路径Ⅱ

一,问题描述二,问题分析 此题的难点在于有了障碍物,但是核心的递推公式和62.不同路径是一致的,但是需要考虑的条件更多1.如果起点有障碍物,那么就没有路径可以走,返回02.对于第一行,如果如果有一个格点初始值为1,说明当前节点有障碍物,没有路径可以通过,设值为0,否则dp[0][i]=dp[0][i-1]3.第一列同理4.状态转移方程需...

2020-04-02 23:01:57 158

原创 PAT 乙级 1001 害死人不偿命的(3n+1)猜想 (15分)

一,问题描述二,问题分析1.利用一个while循环即可完成,循环终止条件 n!=12.循环体内分两种情况一种n是偶数,一种n是奇数三,问题解答#include<iostream>using namespace std;int main() { int n; //输入的数 cin >> n; int res = 0; while...

2020-04-02 20:43:19 96

原创 数字和字符串的相互转换

1.C语言实现1.1整数转换为字符串sprintf(str,"%d",n) :把n以%d的格式传输给str(从右往左)#include<cstdio>int main() { char str[100]; int n = 100; sprintf_s(str, "%d", n + 100); //str = "200" printf_s("%s", st...

2020-04-02 20:31:39 173

原创 LeetCode 213.打家劫舍Ⅱ

一,问题描述二,问题分析 很明显该题目的难度在于首尾相连,而198题的打家劫舍是单排列,首尾相连如何理解?首尾相连意味着第一个和最后一个房屋只能选择偷一个,即偷第一个房屋不偷最后一个房屋,或者不偷第一个房屋偷最后一个房屋。所以该问题就能分解成两个单排列的问题。 问题1:偷第一个房屋不偷最后一个房屋,偷取范围为 0 - n-2, 问题2:不偷第一...

2020-04-02 15:10:10 117

原创 LeetCode 198.打家劫舍

一,问题描述二,问题分析 每一间房屋你都有偷或者不偷两种选择,且不可偷相邻的房屋,从最后一项开始分析,到最后一间房子n能够的最大金额有两个来源,一是不偷最后一间房屋,得到前n-1项房屋的最大值,二是偷最后一间房屋那么就不偷第n-1的房屋,那么最大金额就是前n-2间房屋的最大值加上偷最后一间房屋的金额。两种情况取最大值即可,很明显满足最优子结构。1.定义状态dp[i...

2020-04-02 12:27:41 116

原创 LeetCode 64.最小路径和

一,问题描述二,问题分析1.定义状态 dp[i][j] :表示从起点到(i,j)位置的最小路径和2.初始状态 第一行中位置 i的最短路径和为前i个位置的路径数值之和,第一列同理3.状态转移由于每次只能向下或者向右走,所以dp[i][j]的来源只能是上面或者左边 dp[i][j]=min(dp[i-1][j],dp[i...

2020-04-02 00:28:59 158

原创 LeetCode 62.不同路径

一,问题描述二,问题分析到达finish位置的路径来源只有两个方向,一个是从上面走到finish 一个是从左边走到finish1.状态定义 dp[i][j] :表示从左上角走到(i,j)这个位置的不同路径数2.状态转移dp[i][j]=dp[i-1][j]+dp[i][j-1];注意事项:1.题意m为列数 n为行数 ...

2020-04-02 00:04:53 62

原创 LeetCode 121.买卖股票的最佳时机

一,问题描述二,问题分析1.暴力枚举破解法,用一个二维数组memo[i][j]表示第i天买入,第j天卖出股票的营收,j必须在i后面2.动态规划:minprice :表示当天为止的最低价,定义memo[i] :表示前i天的买卖股票的最高利润故由此的状态转移方程 memo[i] = max(memo[i-1],prices[i] - minprice)3.滑动窗口...

2020-04-01 23:37:04 108

原创 LeetCode 53.最大子序列和

一,问题描述二,问题分析1.定义状态:memo[i] :表示0...i上最大连续子序列和2.初始状态:memo[i] = nums[i]3.状态转移:每多选择一个数字时,即当进来一个新的数字memo[i+1]时,判断到他前面数字子序列和memo[i]+memo[i+1]跟memo[i+1]哪个大,前者大就保留前者,后者大就说明前面连续数字加起来都不如后者一个新进来的数字大,...

2020-04-01 22:24:07 85

原创 LeetCode 300 最长上升子序列

一,问题描述二,问题分析1.定义状态:memo[i] :表示以第i个数字结尾的最长上升子序列的长度2.初始状态:memo[i] :都为1,表示本身的长度3.状态的转移:memo[i] = max(memo[i] , memo[j] +1) nums[j]<nums[i]意思是在第 i个数字之前如果有一个数字小于第i个数字,意味着满足上升序列的要求,再比...

2020-04-01 21:51:52 76

原创 LeetCode 70.爬楼梯

一,问题描述二,问题分析 分析 n层台阶有多少次方法 ,n层台阶的前一个状态是n-1层,或者n-2层,所以 n层台阶爬楼梯的方法数为n-1层的方法数+n-2层的方法数,得出状态转移方程(递推公式): F(n) = F(n-1) + F(n-2),与斐波那契数列一致,所以递归和动态规划都是可以的三,代码解答1.递归算法class Solu...

2020-04-01 21:14:13 156

原创 LeetCode 509.斐波那契数列

一,题目描述二,问题分析非常经典的例题,可以采用递归和动态规划两种思路,递归公式显而易见 F(N) =F(N-1)+F(N-2) N>=2三,代码阶段1.普通递归class Solution {public: int fib(int N) { if(N==0){ return 0; } ...

2020-04-01 20:36:30 96

原创 FOJ 1055

一,题目链接http://acm.fzu.edu.cn/problem.php?pid=1055二,题目描述三,题目分析1.程序段的格式是已知的,一行为三个字符,且中间是赋值运算符,只需用一个数组记录字符是否是已知的(查表法)2.需要考虑情况如下:2.1 n = -1时,程序结束 2.2 n...

2020-04-01 11:47:28 170

原创 FOJ 2205

一,题目描述二,题目分析题目抽象出来的意思就是N个城市的地图中不能有任意三个城市能够相互直达,求N个城市之间联通的最大道路数该情况是不允许存在的该题思路就是二分图,把所有城市分成两个块,块内之间的城市不允许相互连接,而块间的城市则要尽可能多的连接四个城市五个城市所以N个城市的道路数递推公式:N/2 * (N-N/2)三,代码解答...

2020-03-31 22:35:33 118

原创 FOJ 1150

一,问题描述FOJ1150题目链接翻译如下:二,问题分析n = 10 k = 3第一次可以抽 10 根烟,剩下 10 个烟头可以组成 3 根烟加 1个烟头第二次可以抽 3 根烟,剩下 3个烟头加上上次剩余的 1个烟头,总共4个烟头可以组成1根烟加1个烟头第三次可以抽1根烟,剩下一个烟头加上上次剩余1个烟头,剩下 2个烟头无法继续...

2020-03-31 21:49:09 138

原创 FOJ 1477 进制转化

一,问题描述二,问题分析该问题最大的难点在于进制之间转换的方法,参考《算法笔记》三,代码解答#include<iostream>using namespace std;void digui(int i, int k){ if (i < k) { if (i >= 10) printf("%c", i + 55); //得...

2020-03-31 20:32:08 136

原创 FOJ 1889 龟兔赛跑

一,问题描述二,问题分析思路很简单,只需要根据题意比较龟兔的路程即可,兔子:(总时间 -睡觉时间)*速度 乌龟:总时间 * 速度三,代码解答#include<iostream>#include<cstdio>#include<vector>using namespace std;struct Game{ int a...

2020-03-31 17:45:27 101

原创 FOJ 2025 count

一,问题描述二,问题分析1.对于 one遍历字符串如果遇到字符 ‘o’ ,查看接下来的两位字符是不是 ‘n’和 ‘e’,注意边界条件的判断其他同理 三,代码解答#include<iostream>#include<string>using namespace std;int onefun(string str) { int r...

2020-03-31 17:24:04 125

原创 FOJ 2123 数字的孔数

一,问题描述二,问题分析1.提议描述的十分清楚,统计给定整数的孔数和2.最直观的思路就是对整数的每一位分析,如果是0 4 6 9则孔数加1,如果是 8则孔数加23.首先将整数的每一位存储在数组中,再对数组遍历,逐个元素分析即可三,代码解答#include<cstdio>#include<iostream>#include<al...

2020-03-31 16:02:44 208

原创 FOJ 1021 飞船赛

一,题目描述 题目地址:http://acm.fzu.edu.cn/problem.php?pid=1021二,题目分析1.暴力破解:根据题目给定的超车含义,由于在0秒内即可加速到最大速度,那么只要位于后面的飞船的速度大于前面的飞船速度,即可发生超车现象。由于暴力破解时间复杂度过高,提交显示超时2.由于最大速度为100,故开辟一个大小为101空间speed...

2020-03-25 12:15:16 117

原创 FOJ 1304 Recaman's Sequence

一,问题描述二,问题分析1.初看题目符合递归的条件,需要注意的是 a(m) 不在序列中的意思是 a(m)的值在 前m-1个序列中不存在2.输入的整数K的最大范围是500000,采用一个数组记录整个序列即可3.还需要一个标记数组用来判断得到的a(m) 在前面的序列的是否存在三,问题解答#include<iostream>#include<v...

2020-03-24 17:02:34 147

原创 FOJ 1050 Number lengths

一,题目描述二,问题分析1.题目意思为输入一个整数N 输入 N!的位数2.很明显常规方法无法实现,当N很大时,N!的阶乘就无法表示出来3.考虑数学方法 位数ans = log10(N!) = ∑(1≤i≤n)log(i) ,取整后+1三,代码解答#include<iostream>#include<cstdio>#in...

2020-03-24 14:43:05 95

原创 LeetCode 77 组合

一,问题描述二,问题分析与排列问题类似,但是排列问题考虑的是数组间元素的顺序,而组合问题考虑的是数组中不同的数字三,问题解答class Solution {private:vector<vector<int>> res; //用来保存所有的组合void dfs(int n,int k,int index,ve...

2020-03-23 22:37:53 80

原创 LeetCode 46 全排列

一,问题描述二,问题分析经典回溯问题回溯的核心是递归和返回三,代码解答class Solution {private:vector<vector<int>> res; //保存符合条件的排列数组vector<int> used; //用于记录数字是否被使用//表示从数组nums中每次选择一位没...

2020-03-23 21:49:21 116

原创 福州大仙2018年复试上机真题1

一,问题描述二,问题分析该问题我们采用并查集的数据结构来思考1.最开始初始化,每个城镇都是孤立的节点,其父节点就是本身2.道路相通意味着 两个节点有道路相连,即属于同于同一个集合,根据输入的道路相连情况,依次对其进行 并查集的union() 操作,合并到同一个节点3.最后通过find()操作依次找到所有城镇的祖先节点,并存入集合set中,集合的大小即为城镇划分的...

2020-03-23 11:51:34 103

原创 LeetCode 59. 螺旋矩阵 II

一,问题描述二,问题分析三,代码解答class Solution {public: vector<vector<int>> generateMatrix(int n) { int top = 0; int right = n-1; int left = 0; int bottom...

2020-03-23 11:40:39 95

操作系统.xmind

考研党必备的操作系统思维导图,用xmind打开

2020-05-11

数据库课程设计教材订购系统(代码与文档)

全套文件 包括代码,需求分析,数据库文件,答辩ppt,课程设计报告书

2020-04-02

软件工程基于JSP和Tomcat的教材管理系统(报告与源码)

这是基于Jsp和Tomcat的教材管理系统的软件工程实验报告,包含课程设计文档以及源码,源码比较简单,能完成基本的功能,都是自己软件工程课程设计写的,分享给有需要的同学。

2019-03-25

空空如也

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

TA关注的人

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