ACM
文章平均质量分 84
ACM解答,包括uva,poj,hdu,cf
哎哟_不错哦
这个作者很懒,什么都没留下…
展开
-
poj1182食物链(并查集)
解题思路:并查集,三个种类,为每一个动物都创建三个种类,然后每次先判断输入是否合理,如果合理然后在联合。 #include #include using namespace std; #define N 50005 void init(int n); int find(int x); void unite(int x,int y); bool same(int x,in原创 2016-05-12 18:24:21 · 315 阅读 · 0 评论 -
UVA, 563 Crimewave
题意:团伙抢完所有银行后,撤退到S*A矩阵外就算逃出,要求一个点不能走两次,问是否可以完全逃脱 这道题是最大流问题,主要是要去构建图,然后用最大流算法得出是否银行数量和逃出的数量相等。怎么构建图呢?主要是用拆点,把一个点拆成两个点,点(i,j)可以表示为:前点(i-1)*A+j,后点(i-1)*A+j+M(M为一个较大的数,保证M大于等于S*A就行),然后连接前点和后点,方向是前到后, 相邻的点,图是无向的,用该点的后点连接相邻点的前点。最后用一个超级源点连接所有的银行点的前点,用一个超级终点连接所有的边缘原创 2016-05-06 16:12:00 · 828 阅读 · 0 评论 -
UVA, 112Tree Summing
题意:一棵树从上到下相加,问是否出现该值 出现的值为5+4+11+7=27,5+4+11+2=22,5+8+13=26,5+8+4+1=18 dfs算法,用一个数组每次递归记录下当前的值,读到根,把数组的值相加。 #include #include #include using namespace std; #define N 1000 int n; int sum原创 2016-05-07 17:43:53 · 385 阅读 · 0 评论 -
uva191 Intersection(线段之间相交)
题意:是否线段与矩形相交,线段在矩形内部也是相交。 公式:p1*p2=(x1*x2,y1*y2)(内积),p1xp2=(x1*y2,x2*y1)(外积) 判断q是否在线段p1-p2上面,根据(p1-q)x(p2-q)=0来判断q是否在直线p1-p2上。利用内积(p1-q)*(p2-q) p1-p2,q1-q2的交点: (x,y)=p1+(p2-p1)*((q2-q1)x(q1-p1)/((原创 2016-05-10 10:05:37 · 1752 阅读 · 0 评论 -
uva11343 - Isolated Segments(两线段相交)
题意:给你一些线段,求没有和其他线段相交的线段数量 公式:p1*p2=(x1*x2,y1*y2)(内积),p1xp2=(x1*y2,x2*y1)(外积) 判断q是否在线段p1-p2上面,根据(p1-q)x(p2-q)=0来判断q是否在直线p1-p2上。 利用内积(p1-q)*(p2-q) p1-p2,q1-q2的交点: (x,y)=p1+(p2-p1)*((q2-q1)x(q1-p1)/原创 2016-05-10 11:12:10 · 1487 阅读 · 0 评论