摘要: 原题传送:http://poj.org/problem?id=2236 并查集。本来看到N是10^3级别,操作数P是10^6级别,那么N*P就是O(10^9)级别,一阵后怕,不停寻找Plog(N)算法,后来实在想不出,看看时间限制是10s,直接上O(10^9)碰碰运气,没想到1Y,800多ms。 这样的话实现就很容易了,但是1Y后又交了几次,用C++编译器有时ac,有时wa;而用G++虽然时间会慢一点,但是一直都是AC,神马情况?!View Code 1 #include <stdio.h> 2 #include <string.h> 3 #define N 1002 阅读全文
posted @ 2012-09-13 17:49 芒果布丁 阅读(217) 评论(0) 推荐(0)
摘要: 原题传送:http://acm.hdu.edu.cn/showproblem.php?pid=3697 贪心算法。起始点可能是0,1,2,3,4,枚举这5个起始点,后面的点选择可选策略是:选择符合该时刻且结束时间最早的。View Code 1 #include <stdio.h> 2 #include <string.h> 3 #define N 305 4 struct course 5 { 6 int s, t; 7 }e[N]; 8 9 int n;10 bool vis[N];11 12 void work()13 {14 int ans, i, j, k, . 阅读全文
posted @ 2012-09-13 11:59 芒果布丁 阅读(281) 评论(0) 推荐(0)
摘要: 原题传送:http://acm.hdu.edu.cn/showproblem.php?pid=3694 题意很简单,求平面四个点的费马点。 这道题直接枚举所有情况: 1.四个点独立不重叠,这种情况又分为两种情况: a.四个点构成凸四边形,那么对角线交点就是费马点 b.四个点构成凹四边形,那么费马点肯定是凹的那个点 (因为漏了这个情况wa了10多次) 2.四个点中有重复的点,费马点就是重复的那个点View Code 1 #include <stdio.h> 2 #include <string.h> 3 #include <math.h> 4 #include 阅读全文
posted @ 2012-09-13 10:10 芒果布丁 阅读(252) 评论(0) 推荐(0)