-
poj 2446 题目链接 题意:一个nm的矩形方格里,有k个坏点,然后问能否用12的矩形块将矩形方格填满。坏点不能填,小的矩形块不能重叠,不能超出边界。不能有好点没有被填。 思路:乍一看没什么好的思路。。。然后发现小的矩形块只能有两种放置方法(横着放,竖着放) 可能我们对于第i个,可以横着放,也可以竖着放,但是可能某种方案使得后面的某一块没办法放置,因此我们需要反过来调整第i块的放法。 这个过程似乎和二分图匹配有点类似。。? 那到底有没有相似点呢。。。又如何划分集合呢。。。? 如果每个小方格看做点,能不能填满,其实就等价与这些点的最大匹配数×2+坏点数=mn是否成立。。。那如何划分集合呢。。。? 我们可以根据点的坐标的奇偶性划分集 …
Read More -
poj 1274题目链接 裸的匈牙利。 /* *********************************************** Author :111qqz Created Time :2016年05月25日 星期三 17时49分22秒 File Name :code/poj/1274.cpp ************************************************ */ #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include …
Read More -
hdu2063题目链接 题意:求二分图最大匹配。 思路:匈牙利算法。 通过这三篇博客了解了相关概念,学习了匈牙利算法。 趣写算法系列之--匈牙利算法 二分图的最大匹配、完美匹配和匈牙利算法 匈牙利算法详解 感受就是:这个是相对容易学的算法。。并没有名字那么不明觉厉。。。 主体就是一个dfs的过程。。。。 不过据说有比较多的应用。 所以打算切一些题目加深理解以后再回来总结。 /* *********************************************** Author :111qqz Created Time :2016年05月25日 星期三 16时51分32秒 File Name …
Read More -
uva10986题目链接 题意:裸的spfa. 思路:模板,1A. /* *********************************************** Author :111qqz Created Time :2016年05月25日 星期三 03时25分27秒 File Name :code/uva/10986.cpp ************************************************ */ #include <cstdio> #include <cstring> #include <iostream> #include …
Read More -
poj2949 题目链接 题意:我们有 n 个 (n<=100000) 字符串,每个字符串都是由 a~z 的小写英文字 母组成的字符串。如果字符串 A 的结尾两个字符刚好与字符串 B 的开头两字符相 匹配,那么我们称 A 与 B 能相连(注意: A 能与 B 相连不代表 B 能与 A 相连)。 我们希望从给定的字符串中找出一些,使得他们首尾相接形成一个环串(一个串首尾相连也算) 我们想要使这个环串的平均长度最长。 思路:参考了国家集训队论文《spfa算法的优化与应用》 首先我卡在了关于接龙问题的处理方法,只能想到n^2的方法。。显然gg. 而正解是把每个单词看做一条边,把每个单词开头的两个字母和结尾两个字母看做起点和终点,由于 …
Read More -
poj 1860 题目链接 题意:有n种货币,m个货币交易点,每个货币交易点只能是两种货币之间交换,给出两个方向的汇率和手续费。初始拥有数量v的货币s,问能否经过一些py交易,使得最后手里的货币s比v多。 思路:大概还是用spfa求最长路。。松弛那里需要注意一下算法。。。 1A。。。好爽啊。。。。。 /* *********************************************** Author :111qqz Created Time :2016年05月24日 星期二 23时41分46秒 File Name :code/poj/1860.cpp …
Read More -
poj1932题目链接 题意:初始在点1,有100点能量,然后每个点有一个能量值【-100,100】,经过某个点会加上这个点的能量值,问能否找到一条到点n且的路线,且路径任何点的能量值一直为正。一共不超过100个点。 思路:像样例中是直接联通,一路上的能量值都大于0,这是有解的一种情况。另一种是存在一个正环,可能一次路过后面的能量值不够,但是我们可以走多次啊。 因为要求每一步的能量值都大于0,那么我们可以初始化d[]数组为0,然后用spfa求最长路(只需要把那个三角形等式换个方向即可) 如果可以直接联通,也就是d[n]>0,那么有解。 还有可能是存在一个环(判断环的方法是用一个数组在spfa的时候统计每个点入队的次数,如果一个 …
Read More -
poj 1511 题目链接 题意:和那道奶牛的舞会类似,要求所有点到点1的距离和加上1点到所有点的距离和。 思路:正反存边建两次图,跑两次spfa. 然而用vector会TLE....所以去学习了新的建图方式。。。也就是链式前向星:链式前向星(边表)学习链接 也叫边表。 是一种几乎没有什么缺点的存图方式。。。? 比起普通的前向星少了个排序。 哦,还有我发现貌似很多人把这个东西叫邻接表。。但是根据这里:几种建图方式 这个东西还是交边表或者链式前向星比较合适。。。? /* *********************************************** Author :111qqz Created Time :2016 …
Read More -
1614: [Usaco2007 Jan]Telephone Lines架设电话线 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1325 Solved: 570 [Submit][Status][Discuss] Description Farmer John打算将电话线引到自己的农场,但电信公司并不打算为他提供免费服务。于是,FJ必须为此向电信公司支付一定的费用。 FJ的农场周围分布着N(1 <= N <= 1,000)根按1..N顺次编号的废弃的电话线杆,任意两根电话线杆间都没有电话线相连。一共P(1 <= P <= 10,000)对电话线杆间可以拉电话线, …
Read More -
1631: [Usaco2007 Feb]Cow Party Time Limit: 5 Sec Memory Limit: 64 MB Submit: 670 Solved: 493 [Submit][Status][Discuss] Description 农场有N(1≤N≤1000)个牛棚,每个牛棚都有1只奶牛要参加在X牛棚举行的奶牛派对.共有M(1≤M≤100000)条单向路连接着牛棚,第i条踣需要Ti的时间来通过.牛们都很懒,所以不管是前去X牛棚参加派对还是返回住所,她们都采用了用时最少的路线.那么,用时最多的奶牛需要多少时间来回呢? Input 第1行:三个用空格隔开的整数. 第2行到第M+1行,每行三个用空格隔开的整 …
Read More