摘要: 题意(引用):题意:有很多种草,有两个属性:价格和新鲜度;有很多牛,它们都会各自需求一种草,要求是其价格最低为ai,新鲜度最低为bi,且这些牛不希望自己的草和别人的一样。问要满足所有需求的最小花费是多少? 一开始想的都是各种匹配,结果正解是贪心…… 应该来说想不到好方法时,不是二分答案就是贪心了吧? 阅读全文
posted @ 2014-04-01 21:25 acphile 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 二分匹配的灵活运用 3041还是比较好想的,考虑到横排/竖排射一枪就能搞定这一行/一列的所有点, 我们以行数为点集x,列数为点集y,在目标点(xi,yi)之间连一条边 这样最小射击次数=最小点覆盖(边两端点至少有一个点在覆盖集中)=最大匹配 poj2226是它的加强版 这里一块木板不能覆盖非泥泞点, 阅读全文
posted @ 2014-03-25 21:43 acphile 阅读(120) 评论(0) 推荐(0) 编辑
摘要: poj2110 二分答案+bfs判定 poj2112 二分答案+最大流判定(二分答案真乃USACO亲儿子) poj1986 裸的LCA,值得注意的是,树中任意两点的距离可以等于这两点到根的距离减去2*根到他们LCA的距离 poj3259 spfa判断负环是否存在 poj2141 水题 poj3189 阅读全文
posted @ 2014-03-25 21:24 acphile 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 一道非常神奇的题目 var v:array[0..10010] of boolean; n,k,i,x,ans,s:longint; begin readln(n,k); fillchar(v,sizeof(v),false); ans:=1; for i:=1 to n do begin read 阅读全文
posted @ 2014-03-16 23:08 acphile 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 加深对最小费用最大流的理解题 题目求无向图来回和最短的路径,每条边只能走一次 不难想到,无向图中来回等于从源点出发走两条不同路径到汇点(区别于k短路,这里每条边只能走一次); 考虑到边的限制,不难想到,把限制变成容量 连超级源点到起点,容量为2,费用为0; 最小费用最大流即可 这里就不贴代码,以前用 阅读全文
posted @ 2014-03-16 23:07 acphile 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 这两题本质是一致的; 一般来说,对于最长(短)化最短(长)的问题我们一般都使用二分答案+判定是否可行 因为这样的问题,我们一旦知道答案,就能知道全局信息 拿poj2455举例,对于二分出的一个答案,我们将不符合的边全部去掉,在做一遍最大流判断是否成立即可 注意这道题有重边,所以用链式前向星比较好(T 阅读全文
posted @ 2014-03-16 22:51 acphile 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 树上背包? 问最少断掉多少条边可以形成节点数为k的块 设f[i,j]表示以节点i为根,形成一个节点数为k的块要断多少条边 则有:f[x,j]:=min(f[x,j],f[x,j-k]+f[y,k]-2) y是x的孩子 为什么要减2,现在装入以y为节点的子树,x和y之间的边,这条边自然不用断了,但在计 阅读全文
posted @ 2014-03-16 22:32 acphile 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 非常非常经典的构图 有二分图学习基础的话,很容易想到这是一个“三分图”的匹配问题 我们将牛,food,drink作为点 为了方便,我们将牛放在中间,每头牛的出边指向drink种类,入边由food指入 建立超级源点指向所有food,超级汇点指向所有drink, 要满足最多的牛,也就是求一个最大流 但注 阅读全文
posted @ 2014-03-08 23:10 acphile 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 很容易想到一种动态的做法:平衡树…… 或者是二分+树状数组 但,前者编程复杂度较大,而且据说会被卡(没试过);后者理论上超时(据说可以擦边过?); 所以要尝试新的算法; 倒着考虑,显然最后一个对象的位置是最容易确定,顺带着,容易发现, 在第i个人后插入,就是在当前队列中前面有i个空位的空位置; 于是 阅读全文
posted @ 2014-03-08 22:58 acphile 阅读(145) 评论(0) 推荐(0) 编辑
摘要: poj2388 水题 poj1273 最大流初步 poj2456 简单的二分答案 poj2309 论lowbit的重要性 poj1734 floyd求最小环 poj1001 细节题 poj2184 01背包 poj2019 二维st,非常好扩展的 poj2140 简单的数学题,将2n分成两个因数然后 阅读全文
posted @ 2014-03-02 11:20 acphile 阅读(87) 评论(0) 推荐(0) 编辑