随笔分类 -  搜索算法

基础算法
摘要:P1048 [NOIP2005 普及组] 采药解法一 #include<iostream> #include<cstring> using namespace std; const int Maxn=110; const int Maxv=1010; int V,n,ans=0; int w[Max 阅读全文
posted @ 2022-03-21 07:03 心悟&&星际 阅读(112) 评论(0) 推荐(0) 编辑
摘要:01背包给定 n 件物品,物品的重量为 w[i],物品的价值为 c[i]。现挑选物品放入背包中,假定背包能承受的最大重量为 V,问应该如何选择装入背包中的物品,使得装入背包中物品的总价值最大?搜索算法状态i表示考虑第i件物品,v表示当前背包重量,C表示当前最大价值。dfs(i,v,C)调用方式dfs 阅读全文
posted @ 2022-03-21 06:58 心悟&&星际 阅读(54) 评论(0) 推荐(0) 编辑
摘要:P3985 不开心的金明 #include<iostream> #include<map> using namespace std; int w[101],v[101]; map<int,map<int,int> > dp; int n,W; long long dfs(int i,int zl) 阅读全文
posted @ 2022-03-19 18:32 心悟&&星际 阅读(32) 评论(0) 推荐(0) 编辑
摘要:FloodFill算法啥是 FloodFill 算法呢,最直接的一个应用就是「颜色填充」,就是 Windows 绘画本中那个小油漆桶的标志,可以把一块被圈起来的区域全部染色。这种算法思想还在许多其他地方有应用。比如说扫雷游戏,有时候你点一个方格,会一下子展开一片区域,这个展开过程,就是 FloodF 阅读全文
posted @ 2022-03-13 15:23 心悟&&星际 阅读(97) 评论(0) 推荐(0) 编辑
摘要:图的广度优先遍历1、广度优先搜索遍历过程图的广度优先搜索(Depth First Search),和树的层次遍历比较类似。它的思想:类似于一个分层搜索的过程,广度优先遍历需要使用一个队列以保持访问过的结点的顺序,以便按这个顺序来访问这些结点的邻接结点。示例 对图7-25连通无向图采用广度优先搜索遍历 阅读全文
posted @ 2022-03-13 15:21 心悟&&星际 阅读(360) 评论(0) 推荐(0) 编辑
摘要:P3916 图的遍历 #include<iostream> #include<cstdio> #include<vector> #include<algorithm> #include<queue> #include<cstring> #include<string> using namespace 阅读全文
posted @ 2022-03-13 15:14 心悟&&星际 阅读(16) 评论(0) 推荐(0) 编辑
摘要:P1807 最长路 #include<iostream> #include<cstdio> #include<vector> #include<algorithm> #include<queue> #include<cstring> #include<string> using namespace 阅读全文
posted @ 2022-03-13 15:11 心悟&&星际 阅读(23) 评论(0) 推荐(0) 编辑
摘要:P1036 [NOIP2002 普及组] 选数枚举每一种选数并进行素数的判断,计数。 //P1036 选数 #include<iostream> using namespace std; long long ans=0; int a[21]; int n,k; //判断素数 int isprime( 阅读全文
posted @ 2022-03-11 22:39 心悟&&星际 阅读(182) 评论(0) 推荐(0) 编辑
摘要:Queue容器Queue容器概述queue队列与栈有点类似,栈一个是在同一端存取数据,队列一个是在一端存入数据,另一端取出数据。单向队列中的数据是先进先出(First In First Out,FIFO)。在STL中,单向队列也是以别的容器作为底部结构,再将接口改变,使之符合单向队列的特性就可以了。 阅读全文
posted @ 2022-03-10 09:21 心悟&&星际 阅读(27) 评论(0) 推荐(0) 编辑
摘要:P1551 亲戚这里给出一个深度优先遍历的算法。O(n)的预处理,每个回答O(1)。 #include<iostream> #include<vector> using namespace std; vector <int> g[5001]; int d[5001]; int cnt=1; void 阅读全文
posted @ 2022-03-06 16:44 心悟&&星际 阅读(11) 评论(0) 推荐(0) 编辑
摘要:排列的概念排列,一般地,从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列(permutation)。特别地,当m=n时,这个排列被称作全排列(all permutation)。排列数p(n,r)=n!/(n-r)!,p(n,n)=n!,0!=1从 阅读全文
posted @ 2022-03-06 08:08 心悟&&星际 阅读(124) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示