算法
白马46
这个作者很懒,什么都没留下…
展开
-
求解一道算法题——石匠,自己写的总是运行超时
题目描述 石匠接到活,要把石头分成指定重量的若干块。这是一个体力活,消耗的体力和石头重量有关。一斤的石头要消耗1千焦的能量。比如这次雇主的要求是:一块21斤的石头,分成6,7,8斤重的3块。 石匠可以这样:先把石头分成6+15,要消耗 21k的能量。再把15斤的石头分成7,8斤的,要消耗15k的能量,那么,一共要消耗:21+15 = 36 k能量。 石匠也可以这样: 先把石头分成8+13,要消耗 ...原创 2018-12-06 17:22:33 · 384 阅读 · 1 评论 -
[蓝桥杯][历届试题]九宫重排 bfs实现代码+详细注释
问题描述: 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空格中。经过若干次移动,可以形成第二个图所示的局面。 我们把第一个图的局面记为:12345678. 把第二个图的局面记为:123.46758 显然是按从上到下,从左到右的顺序记录数字,空格记为句点。 本题目的任务是已知九宫的初态和终态,求最少经过多少步的移动可以到达。如果无论多少步...原创 2019-03-06 13:11:55 · 491 阅读 · 0 评论 -
[蓝桥杯][2013年第四届真题]幸运数——代码解析
#include<iostream> using namespace std; int num[40000]; //初始数组,只有奇数 ,已完成第一轮筛选 : 1,3,5,7,9 int lucky[20000]; // void find(int n){ int count=0; for(int i=1;i<=50000;i++){ //第二轮筛选 if(i%3...原创 2019-03-17 12:57:36 · 290 阅读 · 0 评论 -
排序算法——快速排序
快速排序(Quick Sort) 快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。 算法描述 快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)。具体算法描述如下: 从数列中挑出一个元素,称为 “基准”(pivot); 重新排序数列,所有元素比基准值小的摆放在...原创 2019-06-23 22:11:35 · 187 阅读 · 0 评论