摘要: 题目链接:http://poj.org/problem?id=1083题目大意懒得写了,就是给n个线段,就覆盖点最多的覆盖数。本来想写线段树来着,结果一看数据范围我傻了...n^2都秒过。标号是有上下层的,要把数据搞到一行。不过题目特殊要注意它不是一小一大给的,而且处理完之后有可能是一个点。WA我两次悲剧...现在刷水题时间有所提高啊...目测本题15分钟AC~附代码:View Code #include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>using namesp 阅读全文
posted @ 2012-03-14 18:04 Evan1004 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3264题目大意:给出平面上n个圆的圆心和半径,求一个大圆,它的圆心与某个给定圆的圆心重合,且对于每一个给定的圆,大圆至少覆盖面积的一半,求出满足要求的大圆的最小半径。分析:由于所求的大圆圆心只有n种选择,我们可以枚举大圆的圆心,然后求能够满足要求的最小半径,取半径最小的方案即可。 直接求满足要求的最小半径比较困难,但若我们已经知道一个半径,判断它时候覆盖了每一个圆至少一半的面积,问题就简单那多了。如果不会求圆的重合面积的话请移步 http://www.cnblogs.com/evan-oi/arc. 阅读全文
posted @ 2012-03-14 15:34 Evan1004 阅读(411) 评论(0) 推荐(1) 编辑
摘要: 题目链接:http://poj.org/problem?id=2546题目大意:RT。分析:如图,ACBD就是我们要求的面积,要想直接求显然是不可行的,我们可以把它拆成ACB和ADB两个楔形(是叫这个吧?),如果首先求ACB的话,只要求出扇形ACB和三角形OAB的面积相减就可以,而想求它们两个的面积就得求出角AOB的度数。怎么求呢,我们可以先用余弦定理求出角AOB的cos值,然后一个NB的东西就出场了(至少我这么想),cmath~,里面提供了反余弦函数,那我们就可以通过cos值直接得到角度。之后就随便搞一下就可以了。至此问题圆满解决。以后碰到相应的题目还可以当模板用。附代码:View Code 阅读全文
posted @ 2012-03-14 15:19 Evan1004 阅读(1012) 评论(1) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3268题目大意:已知每件物品的价格,第i件物品加k金钱可以换取第j件,价格相等的两件物品可以相互交换,求每个物品最小的购买Pi,和有多少个Pi=任意Pj+Pk。分析:转化成最短路,建立一个新源点s,对每个点加一条边,边权为它的原始价格。对可以价钱交换的点建边,边权为要加的钱,对每对价格相等的点建立边权为0的双向边,做一遍s的最短路即可。第二问简直坑爹,3重循环就办了。代码:View Code #include<cstdio>#include<cstdlib>#include& 阅读全文
posted @ 2012-03-14 09:50 Evan1004 阅读(400) 评论(0) 推荐(0) 编辑