摘要:
题目链接:http://poj.org/problem?id=1942 解题思路: 对于一个 n*m 的表格,每一个合法的“画线图”都一定有 n 条横线和 m 条竖线,那么其实这个问题就可以看成在 n+m 个位置中安排 n 条横线和 m 条竖线,我们只要求出 n(或者m) 关于 n+m 的组合数即可 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1043 解题思路:反向BFS + 康托展开 从目标状态 “1 2 3 4 5 6 7 8 x" 反过来做BFS,记录其可能访问到的状态,用康托展开为每一个状态 ”编码“(我不知道怎么说比较合适,其实就是找 阅读全文
摘要:
题目链接:http://poj.org/problem?id=2516 解题思路: 最小费用最大流,这个没什么疑问。但此题小难点在于读题,大难点在于建图。 首先,供应量小于需求量的时候直接输出“-1”。 供大于或等于求的情况,一开始我将每个供应商和每个购买人都拆成K个点,将所有供应商的点和超级源点相 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2444 题目大意: n个学生,他们中间有m对互相认识。有两个操作: 1、把所有人分成两组,每组中的人都互不认识。若该操作能完成,那么请考虑操作2,否则输出“No”; 2、将互相认识的两个人分配到一间双人房 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1045 解题思路: 首先,这题的数据范围很小,可以暴搜,略过不表。此处主要讲二分匹配作法。 思路来源于网络。 对于同一行上没有石头相隔的相连格子,我们将其编成一个号,得到一个号码集合X;同一列上没有石头相 阅读全文
摘要:
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2421 解题思路1: 思路来源于:http://www.cnblogs.com/staginne 阅读全文
摘要:
题目链接:http://poj.org/problem?id=1061 解题思路: 设两只青蛙跳了t次以后才会碰面。则有: x + mt = y + nt + Lk (k为任意整数) (1) (m - n)t + Lk = y - x (2) 用扩展欧几里得求解。设求出来的 gcd(m-n,L) = 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1598 解题思路: 详见代码及注释。 AC代码: 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2819 题目大意: 给出一个N*N的0/1矩阵,只能交换整行或者整列,问最少交换多少次可以变成一个主对角线上的数都为1的矩阵。 解题思路: 对行和列进行二分匹配,如果行和列之间不是完全匹配,直接输出 -1 阅读全文
摘要:
题目链接:http://poj.org/problem?id=3735 解题思路: 先构造一个(n+1)*(n+1)的单位矩阵E,在此基础上进行操作: 1、g i > E[0][i] ++; 2、s i j > for(int k=0;k<=n;k++) swap(E[k][i],E[k][j]); 阅读全文