![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
搜索
文章平均质量分 79
丧乱
It's me
展开
-
田忌赛马--贪心算法 HDU1052
题目链接:点我田忌赛马的故事大家都应该听过吧。田忌和齐王赛马,有优良差三种马,每一种马齐王都比田忌要好,所以齐王总是赢,田忌输一次就要给齐王200银币,田忌输的很惨于是去找孙膑帮忙。孙膑就让他用最差的马去和齐王最好的马比,然后用优秀的马去赢齐王差的马。题目不过是把三头马变成了1000头马,齐王还是按马的优劣来安排,但是田忌可以自己安排马的出场顺序,求田忌最慢安排才能赢得最多。思原创 2016-03-16 13:38:02 · 1938 阅读 · 0 评论 -
01背包问题 -- 经典动态规划题
01背包问题问题描述:有n个重量和价值分别为Wi,Vi的物品,从这些物品中挑选出总重量不超过W的物品,求怎么挑选才能使价值最大;首先可以使用搜索来看看,吧每件物品放入背包试试,找出最优解。// 01背包问题// 问题描述:// 有一个背包可以存放W重量的物品,有n样物品,价值分别为v1,v2,v3,……vn,// 重量分别为w1,w2,w3,……wn,求怎么放才能让价值最原创 2016-03-16 14:51:46 · 902 阅读 · 0 评论 -
优先队列和堆 实战:HDU1242
什么叫优先队列呢,能完成以下任务的就叫做优先队列:·插入一个数值·取出最小的数值(获取数值,并且删除)实现优先队列,应该使用二叉树完成,是一种叫二叉堆的数据结构(binary heap)二叉堆分为两种,最小堆和最大堆。最小堆是父节点的键值总是小于等于子节点的键值。最大堆是父节点的键值总是大于等于子节点的键值。可以将二叉堆看成数组的形式。代码:// 模拟最小堆//原创 2016-03-20 14:20:32 · 593 阅读 · 0 评论 -
素数环问题 HDU1016 DFS深搜
#include #include using namespace std;int num[22];bool vis[22];int n;// 素数判断bool prime(int n){ for(int i = 2; i *i <= n; i++) if(n % i == 0) return false; return true;}void原创 2016-03-22 23:06:47 · 370 阅读 · 0 评论 -
二分图的判断 bfs+dfs两种搜索方法判断
二分图的定义是:给定一个具有n个顶点的图,要给每个顶点上色,并且使相邻的顶点颜色不相同。是否能用最多两种颜色进行染色?首先我们用邻接矩阵来模拟图,使用bfs对整个图遍历一遍#include #include #include using namespace std;const int MAX_N = 105;int V, E;// 代表点的颜色,初始化为0,1或-1表示原创 2016-03-23 15:40:09 · 5369 阅读 · 0 评论 -
走迷宫值路径记录
利用bfs走迷宫是最基础的方法,记录访问过的每个点然后回溯最短路径的点首先把问题简单化一下,只有墙壁和路,代码比较简单,只要会bfs基本上看得懂// 走迷宫记录路径// 概述:有一个N*M大小的迷宫,其中'#'代表墙壁无法通过,'.'代表路,每走一步都将花费1s的时间,求从起点(0,0)到终点(N-1,M-1)的最短路径,并将路径打印#include #include #inclu原创 2016-03-23 22:26:58 · 630 阅读 · 0 评论