- 博客(10)
- 资源 (5)
- 收藏
- 关注
原创 pku 2349(最小生成树)
给出n个点的坐标和s个卫星 求最小生成树 因为每2个卫星之间可以直接通讯,所以可以删除s-1条边,然后输出删除s-1条边之后剩余的边中最长的边 #include #include #include #include using namespace std;const int N=505;class node //存储所有的边{publ
2010-05-28 16:58:00 624
原创 pku 2446(二分匹配)
题意就是一个棋盘,有N个hole,问能否用1*2的矩形覆盖所有的非hole点一个小陷阱就是输入的hole坐标的行和列是反的 对每一个点,和它的上下左右的点比较,如果没有越界且不是hole点,则在2分图中连一条边,最后求二分匹配,若最大匹配数等于棋盘点的总数减去hole点则有解,否则无解 19xx ms险过 #include using namespace std;
2010-05-27 15:42:00 699
原创 pku 1659 (Havel定理)
Havel定理参考:http://hi.baidu.com/roba/blog/item/0732d01645a9ec1b972b4380.html#send 知道这个定理之后就很简单了,要注意的是每个case之间要空行,否则不给PE而是直接WA。 #include #include using namespace std;class point{publ
2010-05-26 14:28:00 1020 1
原创 pku 2516(最小费用最大流)
很烦的构图,起初想把每一个供应地的每一种物品都拆成一个点,不过MLE了。之后看解题报告,因为每种物品互不影响,所以可以对每一种物品求一次费用流。用need和offer数组存下每一个商店和供应地对每种物品的需求和供应量。求之前可以判断一次是否有解,对每一种物品,求供和需的总和的大小,若有一种物品的需大于求,则无解,否则有解。 #include #include #incl
2010-05-14 12:07:00 784
原创 hdu 2222(AC自动机模板)
#include #include #include using namespace std;const int size=26;char key[55],dir[1000005];class ac_auto{ public: ac_auto *fail; ac_auto *next[size]; int
2010-05-13 14:06:00 1154 1
原创 pku 2762(强连通分量+缩点+DFS)
问给出的图中任意两点是否可以由u到v或者由v到u。求一次强连通分量,然后将每个分量看成一个点,若分量中一个点连通另一个分量中的点则这两个分量联通,然后DFS计算传递闭包。用cc数组记录每两个分量是否可达。 #include #include #include using namespace std;const int MAXN=1005;class node
2010-05-09 13:53:00 740
原创 pku 2186(强连通分量)
参考:http://www.cppblog.com/Darren/archive/2008/12/05/68682.html算法证明:http://www.cppblog.com/RyanWang/archive/2009/02/26/74984.aspx求一次强连通分量,然后将每个分量看作一个点,找一个唯一的出度为0的点,其分量内包含的点的数量即为结果。 #include #
2010-05-08 22:19:00 691
原创 pku 1716(差分约束)
类似于1201,只是这里所有权值均为2,构图的方法参考冯威的论文。 #include #include using namespace std; /* 传入源点s,numv存储点的个数,用dis数组存下最短路径值 edge[]为其邻接表 */ class node { public:
2010-05-08 09:28:00 492
原创 pku 1511(最短路径,spfa静态邻接表)
给出图的有向边,求源点到其它所有点的最短距离之和sum1和其他点到源点的最短路径和sum2,sum1+sum2即为所求按图中输入构造一个邻接表,然后将所有边转置后构造一个邻接表,用这两个表求两次最短路径,将他们的和相加即为结果 #include #include using namespace std;/* 传入源点s,numv存储点的个数,用dis数组存下最短路径值
2010-05-05 20:51:00 1006
原创 pku 3259(最短路径,spfa)
有n个农场,m条路径,w条虫洞路径。随后输入m条路径,要处理双向边。然后跟w条虫洞路径,输入这个路径值时要取反。构图然后spfa判环。 #include #include #include using namespace std;/*传入源点s,n存储点的个数,用dis数组存下最短路径值edge[i]存入与i相邻的点及其权值返回值为true则无负环,为
2010-05-02 08:57:00 683
Mathematics for 3D Game Programming and Computer Graphics 3Ed
2011-12-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人