上一页 1 2 3 4 5 6 7 8 9 10 ··· 20 下一页
摘要: //--------------------------------------------------------------- /*---贪心策略+二分+队列 -----将原数组排序,然后每次取k个较小的数合并,将合并的结果保存在一个队列中,继续取出k个数(队列和数组中)... -----但是会出现一个问题当(n-1)%(k-1)!=0时,这样最后剩下的数个数小于k,这会导致序列非严格递减。... 阅读全文
posted @ 2016-09-19 12:31 曹孟德 阅读(402) 评论(0) 推荐(0)
摘要: 若图G中存在这样一条路径,从某个顶点出发,使得它恰通过G中每条边一次(通过每一个顶点可以多次),则称该路径为欧拉路径。若该路径是一个圈(回到起点),则称为欧拉(Euler)回路。 欧拉回路与欧拉路径的充要条件: 1)无向图存在欧拉回路的充要条件:一个无向图存在欧拉回路,当且仅当该图所有顶点度数都为偶 阅读全文
posted @ 2016-09-03 12:53 曹孟德 阅读(1362) 评论(0) 推荐(0)
摘要: /*816 - Abbott's Revenge ---代码完全参考刘汝佳算法入门经典 ---strchr() 用来查找某字符在字符串中首次出现的位置,其原型为:char * strchr (const char *str, int c) ---BFS求最短路 --*/ #define _CRT_SECURE_NO_DEPRECATE #include #include #include #in... 阅读全文
posted @ 2016-09-01 20:22 曹孟德 阅读(654) 评论(0) 推荐(0)
摘要: 假设有一个n行m列的迷宫,每个单位要么是空地(用1表示)要么是障碍物(用0表示).如和找到从起点到终点的最短路径?利用BFS搜索,逐步计算出每个节点到起点的最短距离,以及最短路径每个节点的前一个节点。最终将生成一颗以起点为根的BFS树。此时BFS可以求出任意一点到起点的距离。 阅读全文
posted @ 2016-09-01 18:22 曹孟德 阅读(3226) 评论(0) 推荐(0)
摘要: 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序 阅读全文
posted @ 2016-09-01 13:34 曹孟德 阅读(204) 评论(0) 推荐(0)
摘要: /*572 - Oil Deposits ---DFS求联通块个数:从每个@出发遍历它周围的@。每次访问一个格子就给它一个联通编号,在访问之前,先检查他是否 ---已有编号,从而避免了一个格子重复访问多次 --*/ #define _CRT_SECURE_NO_DEPRECATE #include #include #include using namespace std; const int ... 阅读全文
posted @ 2016-09-01 13:29 曹孟德 阅读(2274) 评论(0) 推荐(0)
摘要: /*UVa 140 140 - Bandwidth ---数据量比较小,可以直接用next_permutation来枚举全排列,依次计算每一个排序的b(i),求出最小即可 ---在枚举时,注意到在计算某一个排列的带宽过程中,如果发现某两个节点的带宽大于当前总的最小带宽k ---则可以直接剪掉。 */ #define _CRT_SECURE_NO_DEPRECATE #include #inclu... 阅读全文
posted @ 2016-08-30 16:57 曹孟德 阅读(153) 评论(0) 推荐(0)
摘要: /*UVa129 - Krypton Factor --回溯问题。看例子可知道确定该字符串是按照从左到右依次考虑每个位置,当前位置填不上所有的字符时,需要回溯。 -- */ #define _CRT_SECURE_NO_DEPRECATE #include #include #include #include using namespace std; const int maxn = 1000;... 阅读全文
posted @ 2016-08-30 14:42 曹孟德 阅读(151) 评论(0) 推荐(0)
摘要: 回溯法:在递归构造中,生成和检查的过程可以有机结合起来,从而减少不必要的枚举。把问题分解为若干个步骤求解时,如果当前步骤没有合法选择,则函数将返回上一级的递归调用,该现象称为回溯法。所以递归枚举通常被称为回溯。 8皇后问题:在8*8的棋盘上放置了8个皇后,使得他们互不攻击,每个皇后的攻击范围为同行, 阅读全文
posted @ 2016-08-30 10:45 曹孟德 阅读(395) 评论(0) 推荐(0)
摘要: #define _CRT_SECURE_NO_DEPRECATE #include #include #include using namespace std; const int maxn = 50; int a[maxn]; bool vis[maxn]; void permutation(int *a,int curr,int n){ if (curr == n){ for (... 阅读全文
posted @ 2016-08-30 10:08 曹孟德 阅读(169) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 10 ··· 20 下一页