- 博客(13)
- 资源 (36)
- 收藏
- 关注
原创 poj3628-DFS/0-1背包-DP/枚举-数据比较弱、方法比较多
因为数据范围20,所以直接枚举是2^20,不会超时。直接求组合就行。在N个数里面取1个数,2个数。。。。N个数,求出一个最小差值就可以了。下面是组合的算法--175MS#include#include #include #include #define nMax 25int N,B;int height[nMax];int ans;int get
2012-10-31 23:58:20 1524
原创 poj1456-贪心
题目大意:有N件商品,分别给出商品的价值和销售的最后期限,只要在最后日期之前销售处,就能得到相应的利润,并且销售该商品需要1天时间。问销售的最大利润。解题思路:1.我用的贪心的思想,将商品的价值从大到小排序,找到销售的最大期限,用hasht数组标记,如果它的期限没有被占用,就在该天销售,如果占用,则从它的前一天开始向前查找有没有空闲的日期,如果有则占用。这样就可以得到最大销售量。
2012-10-30 22:28:02 1295
原创 poj2287-田忌赛马贪心
/*贪心策略:1,如果田忌的最快马快于齐王的最快马,则两者比。(因为若是田忌的别的马很可能就赢不了了,所以两者比)2,如果田忌的最快马慢于齐王的最快马,则用田忌的最慢马和齐王的最快马比。(由于所有的马都赢不了齐王的最快马,所以用损失最小的,拿最慢的和他比)3,若相等,则比较田忌的最慢马和齐王的最慢马3.1,若田忌最慢马快于齐王最慢马,两者比。(田忌的最慢马既然能赢一
2012-10-29 22:46:36 3492
原创 poj3281-最大流
题目开始以为可以用二分匹配解决,但是要和两边都求最大匹配,没办法解决。但是想到最大流可以解决二分匹配问题,那么就建图用网络流解决。但是一开始是这样建图源点-food-牛-drink-汇点,这样虽然满足每份food和drink只能给一头牛吃,但是没法解决每头牛只能吃一份的问题。难在建图,如果是这样,源点-food-牛-牛-drink-汇点,将牛拆成两个点,里面的边权值全为1.用效率不是很高的
2012-10-29 01:05:02 3238
原创 poj3020-二分图匹配
对于任意图:|最小边覆盖|+|最大匹配|=|V|二分图的最大匹配=最小点覆盖数对于二分图:以下数值等价.最大匹配最小点覆盖|V|-最大独立集(二分图or有向无环图)|V|-最小边覆盖数|V|-最小路径覆盖数(有向无环图)|V|-最小路径覆盖数/2(无向图)(上面括号里有有向无环图的,均是将一个点拆成两个点连边匹配)由于任意图的那几个几乎用不到于是这里
2012-10-27 02:13:03 1443
原创 poj1740-楼教主所谓的男人八题之一
*题目大意:* 对于n堆石子,每堆若干个,两人轮流操作,每次操作分两步,* 第一步从某堆中去掉至少一个,第二步(可省略)把该堆剩余* 石子的一部分分给其它的某些堆。最后谁无子可取即输。*解题思路:* 1、先考虑1堆的时候,1堆当然是N点(必胜点),* 2、然后考虑2堆,细想一下可以发现,当2堆一样时,这个时候* 的目的就是要把对方给逼到只有2堆都是1的时候,就能必胜了。
2012-10-25 23:40:27 5281
原创 poj1655-又是一道简单而又纠结的题目
题目很好理解,就是去掉树上的一个节点,看看剩下的子树中最大的是多少,然后在这些最大值中求一个最小值,如果有多个点都是最小值,那么找一个序号最小的节点。输出节点号,和最小值。 经过简单分析,dfs深度优先搜索可以解决,只需要求出每个节点下子树的总结点个数即可。举例说明:设有一棵树20个节点,其中有一个节点为u,u有两个孩子节点,设u以下有10个节点,两个孩子分别有6和4个节点,那
2012-10-25 21:15:18 3556 1
原创 poj3090-隐藏的好深,其实就是一个欧拉函数
看到这个题目简单分析了一下,最后才发现原来就是一个数论知识。首先,题目主要是求从0,0能看到的点的个数。先考虑只有1×1的时候,三个点,根据图明显看出,只需要计算下三角,结果=下三角的个数×2再加1(斜率为1的点)。那么我们只需要计算斜率从0到1之间的个数就行了,不包括1,包括0.结果设为sum,那么最终就是2*sum+1. 1×1只有一个斜率为0的2×2斜率有0,1/2(
2012-10-24 21:18:30 4222 2
原创 poj2028-水的一塌糊涂
直接上代码:还以为很麻烦呢。。。 #include #include #include #define nMax 110int hash[nMax];int N,Q;int main(){ int m; int date; while (1) { scanf("%d %d", &N, &Q); if (N == 0 && Q ==
2012-10-24 00:43:11 1952
原创 poj1144-tarjan求割点
何为割点?也就是题目中的关键点。在一个无向图中,去掉一个点,这个无向图会变成多个子图,那么这个点就叫做割点同理,割边也是如此,如果去掉一条边,能让无向图变成多个子图,那么这条边叫做割边,所谓的桥。 那么tarjan是如何求的割点的呢?如果u为割点,当且仅当满足下面的1/21、如果u为树根,那么u必须有多于1棵子树2、如果u不为树根,那么(u,v)为树枝边,当Low[v]>=
2012-10-23 23:40:45 6930 8
原创 poj-1236--一起学习强连通分量2
上一篇介绍过题目大意和kosaraju算法本篇介绍tarjan算法。引用一下讲解: 概述此算法以一个有向图作为输入,并按照所在的强连通分量给出其顶点集的一个划分。图中的每个结点只在一个强连通分量中出现,即使是在有些结点单独构成一个强连通分量的情况下(比如图中出现了树形结构或孤立结点)。算法的基本思想如下:任选一结点开始进行深度优先搜索(若深度优先搜索结束后仍有未访问的结
2012-10-22 21:58:30 1237
原创 poj-1236-一起学习强连通分量
题目不是很好理解,简单说一下就是有一个有向图,第一问求至少要复制几次软件,才能保证每个地方都有,实际上就是求入度为0的,也就是走不到的。第二问求至少添加几个扩展,也即是添加几条边,让无论从那个地方,都能让任何地方得到软件。也就是添加几条边,能让整个图强连通。 强连通分量算法1---kosaraju最好理解的两次dfs。步骤概要:1. DFS有向图G,并以后根序记录节点2.
2012-10-22 21:23:51 1219
原创 poj3009(好久不见)
不知不觉,有两个月没写博客了。惭愧。。。好久不练,果然手生,今天做了一题,搞了一个多小时,各种问题。题目意思很简单,一个图一个起点一个终点,中间有些block阻碍,可以向上下左右扔球,求从起点到终点最少扔多少次。 扔的规则,如果周围靠着阻碍,不能扔,如果没有,那么可以扔,碰到阻碍,阻碍消失,球停在那里。如果那个方向一个阻碍都没有,那么就game over。 最关键是最多扔1
2012-10-17 20:59:09 1156
Csr_bluetooth_driver技术文档
2011-07-22
蓝牙HCI驱动开发中的BCSP和bccmd协议
2011-07-22
pojcodefor(3000-3799)
2011-04-21
pojcodefor(2000-2999)
2011-04-21
pojcodefor(1200-1999)
2011-04-21
pojcodefor(1100-1199)
2011-04-21
pojcodefor(1000-1099)
2011-04-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人