2012年7月14日

思维题 如何分酒

摘要: 如何分酒?一个人晚上出去打了 10 斤酒, 回家的路上碰到了一个朋友, 恰巧这个朋友也是去打酒的。不过,酒家已经没有多余的酒了,且此时天色已晚,别的酒家也都已经打烊了,朋友看起来十分着急。于是,这个人便决定将自己的酒分给他一半,可是朋友手中只有一个 7 斤和 3 斤的酒桶,两人又都没有带称,如何才能将酒平均分开呢?分析:由10,7,3要得到两个5,怎么样运算可以得到呢?5 = 3 + 25 = 4 + 1因为有个3斤酒瓶。猜想是否可以可以使第2个瓶子(7斤)有7斤酒,第三个瓶子有1斤酒。7斤酒很好实现,第三个瓶子1斤酒可以实现吗。因为7 - 2 * 3就可以等于1,也可以实现。解法:10 7 阅读全文

posted @ 2012-07-14 19:52 more think, more gains 阅读(232) 评论(0) 推荐(0) 编辑

字符串HASH

摘要: 字符串哈希方法很多。当字符串很多,但是不同得却很小时候,利用字符串HASH很方便。而不用大费内存去用MAP。有时侯还可能使MLE。详细字符串HASH讲解。http://www.cnblogs.com/atlantis13579/archive/2010/02/06/1664792.htmlView Code #include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>#define HASH 1000003int head[HASH];char str[1000][40 阅读全文

posted @ 2012-07-14 17:27 more think, more gains 阅读(203) 评论(0) 推荐(0) 编辑

2月份线段树树状数组专题代码

摘要: 2月份刷了树状数组和线段树专题。代码贴在博客上,方便查看。SolvedProblem IDTitleRatio(Accepted / Submitted)1001Rotate28.57%(4/14)1002Cube100.00%(2/2)1003敌兵布阵25.00%(2/8)1004See you~22.73%(5/22)1005Stars14.29%(2/14)1006Find the nondecreasing subsequences20.00%(2/10)1007Stars50.00%(2/4)1008Sort it100.00%(2/2)1009Counting Sequences1 阅读全文

posted @ 2012-07-14 11:39 more think, more gains 阅读(179) 评论(0) 推荐(0) 编辑

二分图相关概念

摘要: 二分图:是这样一个图,其顶点可分为两集合X和Y,所有的边关联的两顶点中,恰一个属于X,另一个属于Y。同一集合的结点不相邻。匹配:图的一个匹配是一些边的集合,任意两条边没有公共点。最大匹配:包含边数最多的匹配。 匈牙利算法完美匹配:所有点都在匹配边上的匹配。完备匹配:在二分图中,X中的所有点都有对应的匹配或者是Y集中所有的点都有对应的匹配。最佳匹配:如果G为加权二分图,则权值和最大的完备匹配称为最佳匹配。KM算法最小覆盖:用最少的点(X集合或Y集合的)让每条边都至少和其中一个点关联。即覆盖边。最少点数(即覆盖数)=最大匹配数最小路径覆盖:用尽量少的不相交简单路径覆盖有向无环图G的所有结点。即覆盖 阅读全文

posted @ 2012-07-14 11:00 more think, more gains 阅读(228) 评论(0) 推荐(0) 编辑

poj 3020 最小路径覆盖

摘要: 题意:N * M的矩阵,*代表城市, o代表空地,有四种信号覆盖设备,每种类型信号设备可以覆盖相临得一个点。问要把所有城市覆盖所需最少得设备数?算法:1.构图 关键是怎么构图,如果像poj3041那样以X,Y轴行列号为两个不同得集合,明显行不同,看下答案输出那么大就知道,于是我猜想是否可以用城市构图, 给城市标号,并且把标号分拆为2个点(vi,vi'), vi为X集合,vi'为Y集合。。然后我发现求出来得二分匹配答案很大,明显又不对。。而且这里应该是用最少的边覆盖所有点。。。当时不知到有最小路径公式,看了解体报告才知道。发现自己瞎猜得建图正确了。无向图最小路径 = N - 最大 阅读全文

posted @ 2012-07-14 10:45 more think, more gains 阅读(192) 评论(0) 推荐(0) 编辑

poj 3041 匈牙利算法 最小点覆盖

摘要: 题意:一个N * N的矩阵,每个格子有些行星,有种特殊武器,一次能消灭一行,或一列,问最少使用多少次这样得武器,可以消灭所有行星。构图:刚开始的思路是最少的边覆盖所有点,这个边是要么平行X轴,要么平行Y轴。显然这样,这个边无法构图,起点终点都不知。转换思路, 既然平行X轴,Y轴的边无法构造,是否可以平行X轴或Y轴的边把它看作一个点呢?同时分成两个集合,一个集合X(1-N),一个集合Y(1-N),一个点(a,b)就从X集合中的点A连一条边指向集合Y中的B。这样的定义构图就完全符合二分图的定义。二分图的定义:1.可以分成两个集合,一个X,一个Y2.任何一条边的两个端点都分属于不同集合3.任何一个集 阅读全文

posted @ 2012-07-14 08:22 more think, more gains 阅读(191) 评论(0) 推荐(0) 编辑

两道思维题

摘要: 1.幼儿园里有多少小朋友老师让幼儿园的小朋友排成一行,然后开始发水果。老师分发水果的方法是这样的:从左面第一个人开始,每隔 2 人发一个梨;从右边第一个人开始,每隔 4 人发一个苹果。如果分发后的结果有 10 个小朋友既得到了梨, 又得到了苹果, 那么这个幼儿园有多少个小朋友?分析:假设这一行为A1....Ap...AL....Aq..,Ap,AL, Aq为同时得梨子和苹果的人,并且他们中间没有再既得梨子又得苹果的人,那么任意两个既得梨子又得苹果的人的间距是多大呢?都拿了苹果小朋友的间距是3,都拿了梨子的小朋友间距为5,要使他们同时拿梨子和苹果,那么这个间距肯定是他们的最小公倍数, d = L 阅读全文

posted @ 2012-07-14 07:32 more think, more gains 阅读(321) 评论(0) 推荐(0) 编辑

导航