摘要: 这题的大意是,给出N个点和M条无向,非负权边,可能有重边,要求从点1出发到达点N,并回到点1,且每条边至多经过1次的最短路径。可以这样想,把一个环想成点1出发的两条到达点N的路径和,也就是流量为2,然后这样建图,加个超级源点与超级汇点,从超级源点到达点1的流量为2,费用为0,从点N到达超级汇点的流量为2,费用为0,然后对于其他的每条边u-v,加入u->v,流量为1,费用为权值,加入v->... 阅读全文
posted @ 2010-09-19 19:58 litstrong 阅读(496) 评论(0) 推荐(0)
摘要: 这题的大意是有N个店主,有M个供应商,对于N个店主,每个主有一定的需求量(对应着K种商品),M个供应商也对应着一定的供应量。然后相应的供应是有一定的费用。最后问说是否能满足需求,不满足的话输出-1,满足的话输出最小的费用。模型是比较裸,这里对于每个商品,都建个图来费用流,相应的建个超级源点和超级汇点。每次spfa去找,复杂度是O(V*E*E)。感谢:http://www.cppblog.com/I... 阅读全文
posted @ 2010-08-08 20:47 litstrong 阅读(345) 评论(0) 推荐(0)
摘要: 题目的大意是给定若干(a,b,c)表示[a,b]之间有c个1,序列只能是0或者1,最后问在这些约束下,序列的最小长度。稍微变形就成了典型的差分约束问题,转化成S(b)-S(a)<=c这样的问题,然后用算导上的建模过程,a->b连条边,权值为c,因为这样的话,对于最后的dis(a)和dis(b),需要符合dis(b)<=dis(a)+w(a->b),也就是dis(b)-dis... 阅读全文
posted @ 2010-08-08 20:36 litstrong 阅读(1346) 评论(0) 推荐(0)
摘要: 这题的大意是在整数坐标上,给定一些点,问说覆盖这些点的最小的正方形的面积,好像黑书上有道类似的,把正方形改成矩形,对于那道题的解法好像是,考虑到最后矩形至少会有一条边上有两个以上的点,所以枚举两个点,可能生成这个矩形,这样就把可能旋转的角度给离散化了,并且复杂度只有O(N^2)的,或者可能都有旋转卡壳的方法来解这个。但对于这道题,不知道这样离散可不可以,但想法都是把枚举数量减少下来,这里用到逼近迭... 阅读全文
posted @ 2010-08-06 13:39 litstrong 阅读(500) 评论(0) 推荐(0)
摘要: 这题的大意是对于一个正整数的区间,有若干句话,判断第一句错误的位置,每句话所描述的意思是对于一个区间[a, b]有奇数个1或是偶数个1。[a,b]有1的个数的奇偶性可以通过判断[0,a-1]到[0,b]的奇偶性异同来判断。相同的话,用0表示,不同的话,用1表示。则这种关系是满足传递性的。对于上述转换过来的问题,与原问题是等价的。然后用并查集来维护这之间的关系就可以了。感谢:http://hi.ba... 阅读全文
posted @ 2010-08-06 13:28 litstrong 阅读(356) 评论(0) 推荐(0)
摘要: 食物链确实是道不错的并查集的题,与以往的应用不同的是,这个是带权的,而带的权就是权两边端点的关系,这个关系要满足传递性。而划分集合的依据是,集合中的点可以确定这个关系。对于常用的并查集的应用的话,这个关系指的就是属于了。而这道题就是不断的维护一个保持这样关系的数据结构集合,如果当前要添加进来的某个关系与集合中的结构发生冲突,就是假话了。难点在于合并时的关系维护(这个简单,直接修改合并过来集合的根节... 阅读全文
posted @ 2010-08-06 12:01 litstrong 阅读(1222) 评论(0) 推荐(0)
摘要: 这次在DIV1挂蛋了。250的题大意是这样的,给一个1<=x<1000000007,对x只能执行两种操作4x+3或者8x+7,问说最少能用几步到达1000000007 * a(a属于自然数),最多只能扩展到100000步,否则输出-1,刚开始以为BFS的话,状态数会太多,就找其中的规律,可惜不够敏感4x+3,8x+7都是2^n*x+2^n-1的这种形式,对于这种形式的两种操作是可以等价... 阅读全文
posted @ 2010-08-06 11:30 litstrong 阅读(175) 评论(0) 推荐(0)
摘要: 这是道感觉很不错的题。武森09年的论文中有道题CowXor,求的是线性结构上的,连续序列的异或最大值,用的办法是先预处理出前n项的异或值,然后在这些值中找出两个值的异或值最大。是基于这样的一个原理,相同段的异或值为0。而这道题把它扩展到树上,这也提示了我们,在思考问题的时候,可以把它退化一维去考虑,即从一般到特殊,出题的时候把它升一维。当时比赛的时候,对这道题都不敢去思考,去分析。因此要习惯分析难... 阅读全文
posted @ 2010-07-29 21:14 litstrong 阅读(873) 评论(0) 推荐(0)
摘要: 一道很不错的树状DP题,题意是求向一颗树,无向的,中加最少的边使其有哈密顿回路。刚开始以为是张普通的图,还想着那样也可以树状DP呢。主要的想法是将一个回路拆开来看,想是一条链,然后先求一颗树中加最少的边,记做K,使得其有一条哈密顿链,然后最后再向起点和终点加一条边,答案就是K+1。并且对于这样分析子树哈密顿链的方法,来扩展想要的状态的答案。对于这样分析,子树链的状态有两种情况,先给定一个方向,即有... 阅读全文
posted @ 2010-07-27 22:38 litstrong 阅读(528) 评论(0) 推荐(0)
摘要: http://projecteuler.net/index.php?section=problems&id=481^1+2^2+...+1000^1000的最后10位。题目是比较水的,竟然搞了一下午。。。本来打算快速幂加上%10^10就行。但两个数相乘会超int,于是用long long,可还是会超就用unsigned long long,最大是2^64 - 1 = 18446744073... 阅读全文
posted @ 2010-05-27 19:14 litstrong 阅读(273) 评论(2) 推荐(0)