自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 操作系统实验1——进程调度

欢迎批评指正#include <iostream>#include <fstream>#include<time.h>using namespace std;bool valid = false;struct PCB { int ID, Priority;//优先权单位1 double StartBlock, StartTime;//距离进入阻塞状态的时间与在阻塞状态进入就绪状态时间 double CPUTime, ArrivalTi

2020-11-10 17:04:31 724

原创 整数因子分解

给定一个数n,计算n有多少个等式(即等式右边的值相同,左边不同的式子有多少个)以整数12为例,它的分解总数等于6、3、2、1的分解总数之和再+三个1因此运用递归可循环求解#include <iostream>using namespace std;int total = 0;void solve(int n) { if (n == 1)total++; else for (int i = 2; i <= n; i++) if (n % i == 0)solve(n

2020-09-26 11:43:23 127

原创 半数集问题

问题的重要点为:给定一个数n在其最左位上再加上一个数,但该数不能超过最近形成的数的一半,比如8,18 28 128 38 138 48 148 248(最近形成的数也被记入,比如28 128),又比如14 114 214 1214 314 1314 414 1414 2414 12414 514 1514 2514 12514 614 1614 2614 12614 3614 13614.。。。。(我累了)就这样可以用纯递归,速度较慢,可以用记忆方式,将2、3、4、5…的半数记录在a数组中,直接调用。#

2020-09-26 11:15:44 90

原创 棋盘覆盖问题

核心问题是,怎样使得没四个单元格里,都有一个特殊方格(这样再用L形骨牌便可一个个插入,达到棋牌覆盖)。以8x8单元格为例:通过算法达到这样每四个单元格里(从左上到右下)。递归结束条件,如果分治到达size=1(检查单个单元格是否为特殊,直接结束),结束。将大格子分成四个等同的子格子(这里划分成4个4x4格子)。检查特殊单元格在哪,除了这个特殊单元格所在区,其他都进行填充(类似象限,第一象限的右下,2的左下,3的右上,4的左上,这样相当于用一个L行骨牌做的填充)。经过这样,对每个4x4的大格子进行划分

2020-09-26 10:59:07 474

原创 循环赛日程表

问题描述:转换成自己的话讲,就是在下面的表格中(不包括最上面橙色),将每行都填入1-8各不相等的数(或者每列)。纵列为1是,可观察到该选手第i天与第i+1比赛(这是一种必然,当然可以交换顺序)。(以下坐标均不包含第一行橙色各个元素)(0,0)->(1,1)、(0,1)->(1,0) (0,2->1,3) (0,3->1,2)…(0,6->1,7) (0,7->1,5)这样,前两行赋值完毕。接着,从(0,0)->(1,1)四个格子复制到(2,2) -&

2020-09-26 09:50:13 91

原创 输油管道问题

本题较好理解,如图所示,找出一个y=c,使得所有红点到达这条线的距离之和最小,问题便解决。换成数学语言min∑|y-yi|从1到4,找到最小值,这条y就是符合条件的位置,而这个位置就是,所有yi的中位数假如,这个位置不是中位数时计算a,b,c到d位置之和,与中位数b时比较。显然中位数合适四条时,b或c是中位数,比较它和e的大小,显然b较小,这样,可以推而广之奇数和偶数。找中位数算法有很多,在此用select算法(具体细节参考上节选择问题博客)#include <iostream&gt

2020-09-26 09:00:02 182

原创 递归分治——选择问题

问题目的:找出数组中第k小的值select(int left, int right, int k)函数,若left>=right代表数组中,找到了第k小的元素将pivot = a[left]赋值(参考快速排序的尿性)接着从前往后找大于pivot的位置,从后往前找小于pivot的位置,交换两个位置的值,循环最后i的前面全部是小于pivot的值,后面全是大于pivot的值。此时检查将j-left+1(代表pivot是第j-left+1小)与k比较,若相等(太幸运了)返回pivot此时交换a[

2020-09-24 12:05:37 161

原创 ZOJ944根据前序遍历中序遍历求后序遍历

本题题目较容易理解,但代码可能稍微有些难度,最主要的精神,是递归,你没听错,神奇的递归你需要知道2个常识性的东西(解释不了就是常识哈哈哈哈。):前序遍历第一个是根节点。中序遍历下,(前序遍历头结点)位置之前的全部属于该树的左子树,之后的全部是右子树void post(string pre, string in) 函数,若pre和in有一个为空,说明该树不存在,返回空,这点很重要,如果没有,会abort()报错(别问我怎么知道的)前序遍历下,从1到iPose位置全部属于左子树(原树左子树的前序遍历

2020-09-15 11:48:30 77

原创 ZOJ2104——数气球

本题属于较简单题目,先输入数字n,下面紧随n行数据(颜色名称),利用map映射,将输入的map映射+1,最后遍历map映射找到最大value值,记录位置将其输出#include <iostream>#include<map>using namespace std;int main(){ int n; string str; while ((cin>>n)&&n) { map<string, int>Bullon; f

2020-09-15 10:42:33 157

原创 ZOJ-1094矩阵相乘次数计算

题目链接算法分析与设计——以ACM程序设计为例——P28矩阵相乘次数解决此题,须知道三项矩阵相乘基本知识:A*B 矩阵相乘1:需满足A的列数等于B的行数。2:矩阵相乘次数=A的行数 *B的行数 *B的列数3:矩阵结果的行数=A的行数,列数=B的列数算法描述:1:构造数据结构:结点:代表一个矩阵的行列数struct Node {int row, col;};映射:将矩阵名称与相应行列数联系起来map<char, Node> matrix;堆栈:用来将输入的表达式中的矩

2020-09-10 10:58:46 884 2

原创 蓝桥杯-网友年龄

#include<iostream>using namespace std;int main(){ int x,y,count=0; for(x=28;x<100;x++){ y=x-27; int z1=x/10,z2=x%10; if(y==(z2*10+z1)) count++; } printf("%d\n",count); return 0;}

2020-08-09 18:08:57 108

原创 三路快速排序C++实现

三路快速排序C++实现**问题定义:**三路快速排序实现过程:初始化:左边界为l,右边界是r,‘<’集合内的最大值(最右侧)记为lt初始记为l,‘=’记为等于v值的数,’>'集合内的最小值(最左边)的前一位,记为gt(不属于‘>’集合内的元素)。记i为当前位置下标,初始化为lt+1。过程:从当前位置i开始,逐个与v比较,如果小于v,则与lt+1下标的值交换,并且i++(继续比较),如果大于,便与下标为gt-1的值交换(注意i值不变,因为此时不能判断原gt-1的值与v的大小关系,需要

2020-08-09 17:38:04 413

原创 辗转相除法

辗转相除法问题定义:辗转相除法求取最大公约数与最大公倍数主要思想:如果m与n的最大公约数是k,那么n与m%n的最大公约数一样是k。证明:(本人较懒)参考:#include<iostream>using namespace std;int gcd(int m,int n){ int r; while(n>0){ r=m%n; m=n; n=r; } return m; //return b==0?a:gcd(b,a%b); //递归方法求解

2020-08-06 12:02:43 202

原创 n皇后问题C++语言描述

n皇后问题C++语言描述n皇后问题C++语言描述问题定义:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法n皇后问题C++语言描述用k表示第k行,s[k]表示第k列。首先判断这个位置放置皇后是否合适:IsAdequate(int k)判断方法:从第一行开始,分别与它前面的行对应的列(s[i])比较,如果存在第i行对应的s[i]列等于该列位置或者处于对角线位置(fabs(i - k) == fabs(s[i] - s[k])),

2020-08-06 11:23:29 550

空空如也

空空如也

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

TA关注的人

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