摘要: 思想是半平面交+旋转卡壳,关于X轴取一次对称再求包围(0, -10^10)点的部分后再对称回来可以少写点针对性代码。左右的射线单独处理了。 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<algorithm> 5 #include<iostream> 6 #include<math.h> 7 using namespace std; 8 const int maxn = 211111; 9 const double eps = 阅读全文
posted @ 2012-08-27 21:00 CSGrandeur 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 分类讨论的情况不难想,难点在于判断各种垂线垂足是否在线段上。设bl1、bl2为两个线段上公垂线垂足位置的比例值,x为p0的公垂线垂足X坐标,则:x = (p1.x - p0.x) * bl1 + p0.x同理可得其他坐标。公垂线向量与两线段向量点积为0可得两个方程,求得bl1和bl2皆在0~1范围内则公垂线垂足都在线段上。 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 typedef long long LL; 5 const double eps = 1e-8; 6 int 阅读全文
posted @ 2012-08-27 20:55 CSGrandeur 阅读(570) 评论(0) 推荐(0) 编辑
摘要: 造福后人,必须翻译一下这痛苦的描述了。按照AC后的理解来说,题目给出两场比赛编号1~100的队伍名次情况(有些队伍没有出现),每行是并列名次,下一行是前面队伍个数累计的名次,求两场比赛的总排名。对于两场都参加的队伍,两场名次之和较小的排前面。对于只参加一场的队伍,在不冲突的情况下和与其该场同名次的且参加了两场的另一支队伍总排名相同。对于不满足上述的只参加一场的队伍,看是否可以插入一个位置,这个位置前面的队伍都是该场在其前面的队伍,后面的队伍也都是该场在其后面的队伍。多个能插入同位置的队伍,按他们在自己那一场的排名来比较。对于以上条件都不满足的队伍,忽略掉。输出的时候同名次队伍要在一行中按队伍I 阅读全文
posted @ 2012-08-27 20:46 CSGrandeur 阅读(688) 评论(0) 推荐(0) 编辑
摘要: 把每个交点映射为单独的id,map去重。对每个点建立相邻点的链表。枚举点,用相邻点链表找最左点,迭代绕出凸包,枚举圆判凸包与圆相交。 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<math.h> 5 #include<vector> 6 #include<algorithm> 7 #include<iostream> 8 #include<map> 9 using namespace std; 10 阅读全文
posted @ 2012-08-27 20:44 CSGrandeur 阅读(541) 评论(0) 推荐(0) 编辑
摘要: 被这道题玩死了要。。。对每个圆枚举得到和其他圆切线斜率,两个切线之间的斜率范围是可以经过的。得到的许多斜率范围可以转化为区间覆盖,nlogn排序得解,总复杂度O(n^2logn)。要特别处理圆相交、包含的情况。切线的斜率范围,是按-pi~pi算的,算晕了很久。。然后就是恐怖的TLE,最后发现交C++TLE,交G++就过了,额滴个神,累死了,调一晚上。。还有,这题用sort比用qsort快了5s。。。 1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<math 阅读全文
posted @ 2012-08-27 20:42 CSGrandeur 阅读(655) 评论(0) 推荐(0) 编辑
摘要: A:求逆元吓唬人的,枚举一下,防超longlong即可。B:处理RankList认真模拟。C:开机贪心花时间长的机器。D:装箱问题2DFS会比较繁琐,其实是个三维的并查集,记录节点与父节点坐标差。E:单行道正向建0边,反向建1边,做最短路。F:重启区间DP。可以发现,每次重启的机器一定是当前两端机器的其中一个。G:维护序列线段树。记录全0区间,可防止更新到底层。H:跳跳BFS,遇到可跳数字,将所有相同数字入队。 阅读全文
posted @ 2012-08-27 20:40 CSGrandeur 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 2010那些事2010年是中南ACM有史以来最辉煌的一年,省赛的冠军队,差一道题Final的福州赛区,伴随着07级一代大神崛起与消失,和我们08级这一代默默无闻的成长。大一没人告诉我ACM是什么,大二参加校赛0题收场,还把组队来帮忙翻译的女生急哭了。2010暑期集训,也算是有尹zw大哥的帮忙才算是进了集训队。那个时候也没人告诉我该怎么入门,什么是EOF,什么是__int64。或许当时要是能百度到刘汝佳大神的《算法竞赛入门经典》(白书),历史也会不一样吧。做了一个月坑爹的《程序设计导引及在线实践》,集训结束了还不晓得二叉树是什么。自动化人的纠结啊,没有数据结构课也没有算法课。省赛没有机会,区域赛 阅读全文
posted @ 2012-08-27 20:39 CSGrandeur 阅读(1508) 评论(4) 推荐(2) 编辑
摘要: 忙的要死了,要给三月月赛调试服务器,出题,还要筹办下个月的校赛,还有考研复试,还有毕业设计……这俩孩子得知考研成绩公布,咱的分数应该算过了初试了,竟然想到来办一场纪念赛,倒是颇为感动。。。事情太多,只出了两个水题,水了两个的朋友别忘了感谢我~~A:搞两个双端队列,一个是最大数单调队列,一个是最小数单... 阅读全文
posted @ 2012-08-27 20:37 CSGrandeur 阅读(297) 评论(0) 推荐(0) 编辑
摘要: POJ朴素搜索能过的Eight,到HDU的变态数据就过不去了,然而无论双广还是A*都无法实现statistic里0ms的神迹。Discuss里看到了罗教主的一个回帖——构造解!于是专门向罗教主请教了一下,竟然没看懂他的回答。 走亲戚和表弟拿纸片玩了好一会儿,发现了一点蛛丝马迹。 构造的方法不止一种, 阅读全文
posted @ 2012-08-27 20:37 CSGrandeur 阅读(403) 评论(0) 推荐(0) 编辑
摘要: #includeint main(){ printf("Hello world!\n");}任何伟大,都有一个微不足道的开始。 阅读全文
posted @ 2012-08-27 20:36 CSGrandeur 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 百度空间很多不好用的地方也忍了,今天发现昨天发的题解竟然莫名其妙消失了,这个真的忍不了了。搬来博客园,之前博文也不多,都搬过来吧。 阅读全文
posted @ 2012-08-27 20:35 CSGrandeur 阅读(216) 评论(0) 推荐(1) 编辑