自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GU

又爱又恨,代码!

  • 博客(40)
  • 收藏
  • 关注

原创 Java实现插入排序类

Java插入排序类直接插入排序类似于玩牌时整理手中纸牌的过程。基本思想:依次将待排序序列中的每一个记录插入到已排好序的序列中,直到全部记录都排好序。如何初始化有序序列?、对于记录序列{1,5,6,7,4,3,2,8,9}初始化有序序列{1} 无序序列{5,6,7,4,3,2,8,9}将data[0]看作有序区如何查找待插入记录的插入位置?t=data[i]此时手中抓的第i张牌与data[0]~data[i-1]张牌比较,比它大的牌后移,直到某张牌data[j]比它

2020-12-03 23:02:48 155 1

原创 Java实现选择排序类

package test;public class SelectionSort { /** * The {@code SelectionSort} class for solving the sorting of a set of integers * @author GU */ public static void SelectionSort(int []a) { int len=a.length; for(int i=0;i<len-1;i++) { int

2020-12-02 21:49:28 136 1

原创 Java实现最大公约数类

Java实现最大公约数类欧几里得算法源于《几何原本》命题VII.2给定两个不互质的数,可以找到它们的最大公约数。配图与证明源于书本,本人仅是知识的搬运工,做了些小小的整理。注解:下面 ‘测尽、测得’ 两个词沿用欧几里得的术语,现代数学术语已用 ‘除、除尽’ 代替。首先,下个定义:AB和CD互质,即只有一个单位能测尽AB和CD。命题:如果AB和CD不互质,那么总有某个数测尽它们。设:AB和CD为给定的两个不互质的数求:找到AB和CD的最大公约数证明分析如下:如果CD测尽AB,

2020-12-01 20:55:51 622

原创 Java实现交换函数类

Java交换函数类Java中没有指针和引用值类型,所以C++中使用的引用值类型交换函数在Java中是不行的。#include<iostream>using namespace std;/**使用引用值类型进行两个整数的交换@author GU*/void Swap(int &a,int &b){ int t=a; a=b; b=t;}int main(){ int a=3,b=5; Swap(a,b); cout<<a<&lt

2020-11-30 22:00:15 1211 1

原创 Java实现冒泡排序类

冒泡排序输入:一维数组存放n个无序数输出:从小到大排序输出算法:从下标i=0开始向右遍历数组,比较a[i]与a[i+1],若a[i]>a[i+1],则交换,此为一趟排序。重复上述操作,比较n-1趟,排序完成。分析:①一趟排序可以得到最大的元素a[n-1],其实就是打擂台思想。对于每一对a[j]与a[j+1]的比较,交换完大的元素就是a[j+1];然后拿此时最大的元素与下一个元素比较并交换,所以a[j+1]中存放的永远是目前比较过的数中最大的数;第一趟排序完,最大的元素就会放到a[n-1

2020-11-29 21:29:57 361

原创 队列VS优先队列

相同的代码struct node{ int x,y; node(int x, int y):x(x),y(y) {} friend bool operator<(const node &a,const node &b) { if(a.x==b.x)return a.y<b.y; return a.x<b.x; } //下面的效果等价于上面的...

2020-04-09 21:58:46 330

原创 算法提高 矩阵乘法

算法提高 矩阵乘法问题描述  有n个矩阵,大小分别为a0a1, a1a2, a2a3, …, a[n-1]a[n],现要将它们依次相乘,只能使用结合率,求最少需要多少次运算。  两个大小分别为pq和qr的矩阵相乘时的运算次数计为pqr。输入格式  输入的第一行包含一个整数n,表示矩阵的个数。  第二行包含n+1个数,表示给定的矩阵。输出格式  输出一个整数,表示最少的运算次数。...

2020-03-14 16:39:47 273

原创 算法提高 单词个数统计

算法训练 单词个数统计问题描述  编写一个程序,输入一个字符串(长度不超过80),然后统计出该字符串当中包含有多少个单词。例如:字符串“this is a book”当中包含有4个单词。  输入格式:输入一个字符串,由若干个单词组成,单词之间用一个空格隔开。  输出格式:输出一个整数,即单词的个数。  输入输出样例  用户输入数据样例:  this is a book  系统输出...

2020-02-28 21:52:04 503 1

原创 算法训练 奇变字符串

算法训练 奇变字符串问题描述  将一个字符串的奇数位(首位为第0位)取出,将其顺序弄反,再放回原字符串的原位置上。  如字符串"abcdefg",奇数位为"bdf",顺序弄反后为"fdb",最后得到字符串"afcdebg"。输入格式  输入共一行,为一个字符串,字符串中无空格。输出格式  输出共一行,为一个字符串,即最后得到的字符串。样例输入abcdefg样例输出afcde...

2020-02-27 20:52:07 361 1

原创 历届试题 k倍区间

历届试题 k倍区间问题描述  给定一个长度为N的数列,A1, A2, … AN,如果其中一段连续的子序列Ai, Ai+1, … Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。  你能求出数列中总共有多少个K倍区间吗?输入格式  第一行包含两个整数N和K。(1 <= N, K <= 100000)  以下N行每行包含一个整数Ai。(1 &...

2020-02-26 19:58:03 242

原创 算法提高 字符串压缩

算法提高 字符串压缩问题描述  编写一个程序,输入一个字符串,然后采用如下的规则对该字符串当中的每一个字符进行压缩:  (1) 如果该字符是空格,则保留该字符;  (2) 如果该字符是第一次出现或第三次出现或第六次出现,则保留该字符;  (3) 否则,删除该字符。  例如,若用户输入“occurrence”,经过压缩后,字符c的第二次出现被删除,第一和第三次出现仍保留;字符r和e的第...

2020-02-26 19:36:19 726

原创 算法提高 数组求和

算法提高 数组求和问题描述  输入n个数,围成一圈,求连续m(m<n)个数的和最大为多少?输入格式  输入的第一行包含两个整数n, m。第二行,共n个整数。输出格式  输出1行,包含一个整数,连续m个数之和的最大值。样例输入10 39 10 1 5 9 3 2 6 7 4样例输出23数据规模和约定  0<m<n<1000, -32768<=...

2020-02-26 19:01:41 322

原创 算法提高 盾神与积木游戏

算法提高 盾神与积木游戏问题描述  最近的m天盾神都去幼儿园陪小朋友们玩去了~  每个小朋友都拿到了一些积木,他们各自需要不同数量的积木来拼一些他们想要的东西。但是有的小朋友拿得多,有的小朋友拿得少,有些小朋友需要拿到其他小朋友的积木才能完成他的大作。如果某个小朋友完成了他的作品,那么他就会把自己的作品推倒,而无私地把他的所有积木都奉献出来;但是,如果他还没有完成自己的作品,他是不会把积木...

2020-02-26 18:55:51 257

原创 算法训练 数组逆序排列

算法训练 数组逆序排列问题描述  编写一个程序,读入一组整数(不超过20个),并把它们保存在一个整型数组中。当用户输入0时,表示输入结束。然后程序将把这个数组中的值按逆序重新存放,并打印出来。要求:(1)只能定义一个数组;(2)在交换两个数组元素的值时,必须使用单独定义的一个函数swap。例如:假设用户输入了一组数据:7 19 -5 6 2 0,那么程序将会把前五个有效数据保存在一个数组中,...

2020-02-26 18:34:46 957 1

原创 算法训练 石子游戏

算法训练 石子游戏问题描述  石子游戏的规则如下:  地上有n堆石子,每次操作可选取两堆石子(石子个数分别为x和y)并将它们合并,操作的得分记为(x+1)×(y+1),对地上的石子堆进行操作直到只剩下一堆石子时停止游戏。  请问在整个游戏过程中操作的总得分的最大值是多少?输入格式  输入数据的第一行为整数n,表示地上的石子堆数;第二行至第n+1行是每堆石子的个数。输出格式  程序...

2020-02-26 18:31:14 765

原创 算法设计 删除无序单链表中的值域重复的结点

删除无序单链表中的值域重复的结点题目:有一个带头结点的单链表head,其中可能出值域重复的结点,设计一个算法删除值域重复的结点。要求在主函数中调用设计的算法,给出结果。思路:删除某个结点值的重复结点,只需要遍历单链表找到与之相同的结点删除即可。删除多个不同结点值的重复结点,可以按链表顺序一个一个调用删除函数即可。因此可以使用递归实现。测试数据:样例1:1、2、3、4、5、6、7、8、9、...

2020-02-25 13:33:23 3448

原创 算法训练 自行车停放

算法提高 自行车停放问题描述  有n辆自行车依次来到停车棚,除了第一辆自行车外,每辆自行车都会恰好停放在已经在停车棚里的某辆自行车的左边或右边。(e.g.停车棚里已经有3辆自行车,从左到右编号为:3,5,1。现在编号为2的第4辆自行车要停在5号自行车的左边,所以现在停车棚里的自行车编号是:3,2,5,1)。给定n辆自行车的停放情况,按顺序输出最后停车棚里的自行车编号。输入格式  第一行一个...

2020-02-19 15:29:49 1149 1

原创 历届试题 连号区间数

历届试题 连号区间数问题描述小明这些天一直在思考这样一个奇怪而有趣的问题:在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现在小明需要你的帮助。...

2020-02-15 14:05:05 286

原创 算法训练 奇异虫群

算法训练 奇异虫群问题描述  在一个奇怪的星球上驻扎着两个虫群A和B,它们用奇怪的方式繁殖着,在t+1时刻A虫群的数量等于t时刻A虫群和B虫群数量之和,t+1时刻B虫群的数量等于t时刻A虫群的数量。由于星际空间的时间维度很广阔,所以t可能很大。OverMind 想知道在t时刻A虫群的数量对 p = 1,000,000,007.取余数的结果。当t=1时 A种群和B种群的数量均为1。输入格式 ...

2020-02-12 10:51:47 597

原创 历届试题 回文数字

历届试题 回文数字问题描述  观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。本题要求你找到一些5位或6位的十进制数字。满足如下要求:  该数字的各个数位之和等于输入的整数。输入格式  一个正整数 n (10<n<100), 表示要求满足的数位和。输出格式  若干行,每行包含一个满足要求的5位或...

2020-02-09 16:25:56 136

原创 历届试题 九宫幻方

历届试题 九宫幻方问题描述  小明最近在教邻居家的小朋友小学奥数,而最近正好讲述到了三阶幻方这个部分,三阶幻方指的是将1~9不重复的填入一个3*3的矩阵当中,使得每一行、每一列和每一条对角线的和都是相同的。三阶幻方又被称作九宫格,在小学奥数里有一句非常有名的口诀:“二四为肩,六八为足,左三右七,戴九履一,五居其中”,通过这样的一句口诀就能够非常完美的构造出一个九宫格来。  4 9 2  ...

2020-02-09 16:18:53 948

原创 算法提高 递推求值 【矩阵快速幂】

算法提高 递推求值问题描述  已知递推公式:F(n, 1)=F(n-1, 2) + 2F(n-3, 1) + 5,F(n, 2)=F(n-1, 1) + 3F(n-3, 1) + 2F(n-3, 2) + 3.初始值为:F(1, 1)=2, F(1, 2)=3, F(2, 1)=1, F(2, 2)=4, F(3, 1)=6, F(3, 2)=5。  输入n,输出F(n, 1)和F(n...

2020-02-06 18:14:48 296

原创 历届试题 高僧斗法

历届试题 高僧斗法问题描述  古时丧葬活动中经常请高僧做法事。仪式结束后,有时会有“高僧斗法”的趣味节目,以舒缓压抑的气氛。  节目大略步骤为:先用粮食(一般是稻米)在地上“画”出若干级台阶(表示N级浮屠)。又有若干小和尚随机地“站”在某个台阶上。最高一级台阶必须站人,其它任意。(如图1所示)  两位参加游戏的法师分别指挥某个小和尚向上走任意多级的台阶,但会被站在高级台阶上的小和尚阻挡,不...

2020-02-02 19:43:38 278

转载 历届试题 九宫重排

历届试题 九宫重排学习大佬博客passerbyOrz法一:双向bfs+map去重 100 用时 78ms 蓝桥杯#include<iostream>#include<cstdio>#include<queue>#include<string>#include<map>using namespace std;const...

2020-02-01 17:48:16 158

原创 算法提高 书院主持人

问题描述  北大附中书院有m个同学,他们每次都很民主地决策很多事情。按罗伯特议事规则,需要一个主持人。同学们民主意识强,积极性高,都想做主持人,当然主持人只有一人。为了选出主持人,他们想到了一个办法并认为很民主。方法是:  大家围成一圈,从1到m为每个同学编号。然后从1开始报数, 数到n的出局。剩下的同学从下位开始再从1开始报数。最后剩下来的就是主持人了。现在已经把同学从1到m编号,并约定报数为n的出局,请编程计算一下,哪个编号的同学将会成为主持人。输入格式  一行,由空格分开的两个整数m n。输

2020-02-01 16:56:41 553

原创 算法训练 方格取数

算法训练 方格取数问题描述  设有NN的方格图(N<=10),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0。  某人从图的左上角的A 点(1,1)出发,可以向下行走,也可以向右走,直到到达右下角的B点(N,N)。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。  此人从A点到B 点共走两次,试找出2条这样的路径,使得取得的数之和为最大。输入格式...

2020-01-30 16:52:52 401

原创 算法训练 幂方分解

算法训练 幂方分解问题描述  任何一个正整数都可以用2的幂次方表示。例如:  137=27+23+20  同时约定方次用括号来表示,即ab 可表示为a(b)。  由此可知,137可表示为:  2(7)+2(3)+2(0)  进一步:7= 22+2+20 (21用2表示)  3=2+20  所以最后137可表示为:  2(2(2)+2+2(0))+2(2+2(0))+2(0) ...

2020-01-30 15:33:34 602

原创 算法训练 瓷砖摆放

算法训练 瓷砖摆放问题描述  有一长度为N(1<=N<=10)的地板,给定两种不同瓷砖:一种长度为1,另一种长度为2,数目不限。要将这个长度为N的地板铺满,一共有多少种不同的铺法?  例如,长度为4的地面一共有如下5种铺法:  4=1+1+1+1  4=2+1+1  4=1+2+1  4=1+1+2  4=2+2  编程用递归的方法求解上述问题。输入格式  只有...

2020-01-30 11:21:51 748

原创 算法训练 摆动序列

算法训练 摆动序列思路:见博客第三种方法 动态规划 打表!学习博客取次花丛懒回顾_半缘修道半缘君问题描述  如果一个序列满足下面的性质,我们就将它称为摆动序列:  1. 序列中的所有数都是不大于k的正整数;  2. 序列中至少有两个数。  3. 序列中的数两两不相等;  4. 如果第i – 1个数比第i – 2个数大,则第i个数比第i – 2个数小;如果第i – 1个数比第i –...

2020-01-30 11:01:04 469

原创 历届试题 斐波那契

历届试题 斐波那契折磨自己3天的题目终于解决啦再不解决的话,小编我可就要疯了这个过程相当的折磨人,啊啊啊递归,记忆化递归,动态规划在这题数据规模面前只能跪拜呢!(上述方法链接这里:点击可看)最终的解决方法是大佬的矩阵快速幂+斐波那契性质+分类讨论,看着就觉得可怕(⊙o⊙)…ACdreamers大佬的思路讲解emmm,不过大佬的代码我放在蓝桥杯没有通过…好在不止我一个人在奋斗啊,还有一...

2020-01-29 17:19:28 423

原创 矩阵快速幂求斐波那契第n项

矩阵快速幂求斐波那契第n项学习博客-Dong看图解就可明白。我是推到n+1项,多推一项,思路是学习博客城南的花其实两个思路一样,一个是推到n项,幂指数用的n-1算的,结果应是结果数组第一行第一列,另一个是推到n+1项,幂指数用的n算的,结果数组第一行第二列。/*矩阵快速幂之斐波那契第n项*/#include<iostream>using namespace std;str...

2020-01-28 11:20:21 268

原创 为解决斐波那契学习矩阵快速幂

矩阵快速幂关于矩阵乘法,请自行了解。学习大佬博客矩阵快速幂基础以下代码是基于大佬博客进行修改与完善的#include<iostream>using namespace std;const int Maxn = 100;struct Matrix//结构体 矩阵类型{ int m[Maxn][Maxn];}ans, res;/*计算矩阵乘法的函数*/Matrix ...

2020-01-27 22:18:04 110

原创 从斐波那契学习动态规划

历届试题 斐波那契之超时做法学习动态规划入门之斐波那契,取经自大佬博客HankingHu以下代码自我实现递归法 超时20%#include<iostream>using namespace std;long long n, m, p;long long F(int i){ if (i == 1 || i == 2)return 1; else return F(i ...

2020-01-27 22:08:50 119

原创 快速幂与(同余)快速幂

快速幂别人已经说得很明白了,我就不说了。转载CXCXCX的快速幂详解同余快速幂建议先看搜狗百科了解同余,再看大佬性质大全。重点记得基础同余和费马小定理。搜狗百科——同余转载SeanOcean大佬的同余性质大全#include<iostream>using namespace std;//快速幂//int quick_power(int a,int b)//{/...

2020-01-27 20:26:56 230

原创 算法提高 P0401

算法提高 P0401/*输入一个无符号整数x,输出x的二进制表示中1的个数.输入:  76584输出:  7*/思路:判断n转为二进制数的每一位是否为1,为1计数。编写一个函数Count():实现上述功能。#include<iostream>using namespace std;int Count(int n){ int count = 0; while ...

2020-01-21 11:12:04 128

原创 算法训练 1的个数

/*问题描述  输入正整数n,判断从1到n之中,数字1一共要出现几次。 例如1123这个数,则出现了两次1。 例如15,那么从1到15之中,一共出现了8个1。输入格式  一个正整数n输出格式  一个整数,表示1出现的资料样例输入15样例输出8数据规模和约定  n不超过30000*/

2020-01-21 11:08:14 410

原创 算法提高 特等奖学金

算法提高 特等奖学金/*问题描述  土豪大学每年都会给学生颁发巨额的特等奖学金,当然,获奖的前提是要足够优秀。这所大学有n名学生,他们中的每个人都会在m门必修课的每门课上获得一个百分制的整数成绩(0-100),到了期末教务长会获得所有学生在所有必修课上的成绩报告,他会从中挑选出最优秀的k位学生,并给他们颁发奖学金。  教务长认为,某个学生只要有一门课不及格(分数<85),他就丧失了获得奖...

2020-01-17 15:11:16 718 1

原创 算法提高 成绩排名

算法提高 成绩排名/*问题描述  小明刚经过了一次数学考试,老师由于忙碌忘记排名了,于是老师把这个光荣的任务交给了小明,小明则找到了聪明的你,希望你能帮他解决这个问题。输入格式  第一行包含一个正整数N,表示有个人参加了考试。接下来N行,每行有一个字符串和一个正整数,分别表示人名和对应的成绩,用一个空格分隔。输出格式  输出一共有N行,每行一个字符串,第i行的字符串表示成绩从高到低排...

2020-01-16 21:47:45 1037

原创 算法提高 成绩排序2

算法提高 成绩排序2/*问题描述  给出n个学生的成绩,将这些学生按成绩排序,排序规则:总分高的在前;总分相同,数学成绩高的在前;总分与数学相同,英语高的在前;总分数学英语都相同,学号小的在前输入格式  第一行一个正整数n,表示学生人数  接下来n行每行3个0~100的整数,第i行表示学号为i的学生的数学、英语、语文成绩输出格式  输出n行,每行表示一个学生的数学成绩、英语成绩...

2020-01-16 21:27:36 549

原创 算法提高 成绩排序

算法提高 成绩排序/*问题描述  给出n个学生的成绩,将这些学生按成绩排序,  排序规则,优先考虑数学成绩,高的在前;数学相同,英语高的在前;数学英语都相同,语文高的在前;三门都相同,学号小的在前输入格式  第一行一个正整数n,表示学生人数  接下来n行每行3个0~100的整数,第i行表示学号为i的学生的数学、英语、语文成绩输出格式  输出n行,每行表示一个学生的数学成绩、英语成绩...

2020-01-16 17:27:25 844 2

空空如也

空空如也

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

TA关注的人

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