
算法基础
满树
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
sort()函数用法
sort()函数是用来排序的函数,使用时需加上头文件”#include<algorithm>“和”using namespace std;“ 其使用方式sort(首元素地址(必填),尾元素地址的下一个地址(必填),比较函数(非必填));eg:a[6]={9,4,2,5,6,-1}; sort(a,a+4);//将a[0]~a[3]从小到大排序(1)若需要对序列进行排序,...原创 2020-02-17 01:18:01 · 706 阅读 · 0 评论 -
算法笔记--BFS例题
例1:基本思想:枚举每一个位置的元素,如果为0,则跳过;如果为1,则使用BFS查询与该位置相邻的4个位置,判断它们是否为1(如果某个相邻的位置为1,则同样去查询与该位置相邻的4个位置,指导整个“1”块访问完毕)。为了防止走回头路,一般可以设置一个bool型数组inq(即in queue的简写)来记录每个位置是否在BFS中已入过队。#include<cstdio>#inc...原创 2020-03-05 20:09:32 · 517 阅读 · 0 评论 -
算法笔记--DFS例题
有n件物品,每件物品的重量为w[i],价值为c[i]。现在需要选出若干件物品放入一个容量为V的背包中,使得在选入背包的物品重量和不超过容量V的前提下,让背包中物品的价值之和最大,求最大价值。输入数据:5 83 5 1 2 24 5 2 1 3输出结果:10#include<cstdio>#include<iostream> ...原创 2020-03-04 23:26:35 · 492 阅读 · 0 评论 -
随机选择算法
求浮点型的四舍五入,用round()函数,包含头文件<cmath>中。RAND_MAX是C中stdlib.h中宏定义的一个字符常量:#define RAND_MAX Ox7FFF其值最小为32767,最大为2147483647通常在产生随机小数时可以使用RAND_MAX。rand()*1.0/RAND_MAX这个数就是产生了一个0-1的浮点数数据。...原创 2020-02-29 19:27:00 · 280 阅读 · 0 评论 -
木棒切割问题(***二分法)
木棒切割问题 给出N根木棒,长度均已知,现在希望通过切割它们来得到至少K段长度相等的木棒(长度必须是整数),问这些长度的木棒最长能有多长。 例如对三根长度分别为10,24,15 的木棒来说,假设 K = 7,即需要至少7段长度相等的木棒,那么可以得到的最大长度为6,在这种情况下,第一根木棒可以提供10/6 = 1段、第二根木棒可以提供24/6 = 4段、第三根木棒可以提供15/...原创 2020-02-26 22:27:28 · 2735 阅读 · 0 评论 -
装水问题(二分法)
装水问题Note:输入时:float型输入用%fdouble型输入用%lf输出时:最好是都用%f输出const double eps = 1e-5; //精度为10^-5 有一个侧面看去是半圆的储水装置,该半圆的半径为R,要求往里面装入高度为h的水,使其在侧面看去的面积与半圆面积的恰好为r,先给定R和r,求高度h。 ...原创 2020-02-26 20:21:04 · 668 阅读 · 0 评论 -
区间贪心(区间不相交问题***)
区间不相交问题: 给出N个开区间(x, y),从中选择尽可能多的开区间,使得这些开区间两两没有交集。例如对开区间(1,3)、(2,4)、(3,5)、(6,7)来说,可以选出最多三个区间(1,3)、(3,5)、(6,7)它们互相没有交集。 首先考虑最简单的情况,如果开区间 I1被开区间 I2包含,如图a,那么显然选择 I1是最好的选择,因为如果选择I1,那么就有更大的空间去容纳其...原创 2020-02-25 22:40:41 · 538 阅读 · 0 评论 -
熄灯问题(POJ 2811)
问题描述:Note:1. int a[5][6] 输入循环如下,是不可以的,会一直无法结束输入,数组下标应是0~4,0~5 。for(i = 1; i <= 5; i++) for(j = 1; j <= 6; j++) cin >> a[i][j];2 . 有一个由按钮组成的矩阵,其中每行有...原创 2020-02-23 22:54:05 · 757 阅读 · 0 评论 -
完美立方(POJ 2810)
完美立方(POJ 2810)Note:==1.为避免重复计算。用一个数组cube[101]存储事先计算好的立方值。2.题目要求2<=b<=c<=d<a所以循环由外至内为b,c,d它们的取值上限都是a-1,下限分别是2,b,c==问题描述:形如a3= b3 + c3 + d3的等式被称为完美立方等式。例如123= 63 + 83 + 103 。编写一个程序,对任给...原创 2020-02-23 16:39:39 · 656 阅读 · 0 评论 -
全排列(Full Permutation)(递归***)
从递归的角度考虑,如果把问题描述成“输出1~n这n个整数的全排列”,那么它就可以被分为若干个子问题:“输出以1开头的全排列”,“输出以2开头的全排列”。。。“输出以n开头的全排列”。于是不妨设定一个数组P,用来存放当前的排列;再设定一个散列数组hashTable,其中hashTable[x]当整数x已经在数组P中时为true。现在按顺序往P的第1位到第n位中填入数字。不妨假设当前已经填好了P[...原创 2020-02-18 19:46:44 · 369 阅读 · 0 评论 -
求Fibonacci数列的第n项
(斐波那契数列)Fibonacci数列是满足 F(0) = 1, F(1) = 1, F(n) = F(n-1)+F(n-2) (n>=2)的数列,数列的前几项为1,1,2,3,5,8,13,21,...。仿照求解n的阶乘的写法,写出求解Fibonacci数列第n项的程序:#include<cstdio>#include<iostream>#includ...原创 2020-02-18 14:32:38 · 1934 阅读 · 0 评论 -
字符串hash(string)
字符串hash是指将一个字符串S映射为一个整数,使得该整数可以尽可能唯一地代表字符串S。假设字符串均由大写字母A~Z构成。在此基础上,可把原创 2020-02-18 14:08:21 · 996 阅读 · 0 评论 -
hash(散列)
问题: 给出N个正整数,再给出M个正整数,问这M个数中的每个数分别是否在N个数中出现过,其中N,M<=10^5,且所有正整数均不超过10^5。例如N= 5,M= 3,N个正整数为{8,3,7,6,2},欲查询的M个正整数{7,4,2},于是后者只有7和2在N个正整数中出现过,而4是没有出现过的。 最直观的思路:对每个欲查询的正整数x,遍历所有N个数,看是否有一个树...原创 2020-02-18 00:49:14 · 219 阅读 · 0 评论