- 博客(9)
- 收藏
- 关注
原创 HDU 4341 判断共线+背包
题意:黄金矿工的意思,每个点有价值和时间,如果共线得从最近的开始取,问求时间t內取到的最大价值。这题把共线的情况看成一组,要取某个点的话必须把跟这个点共线并且与原点距离在这个点之前的点取到。所以把每条线上的分组用分组背包就可以了。#include #include#include#include#includeusing namespace std;struct point{
2013-06-26 09:58:57 1075
原创 POJ 1375 过一点求圆切线极角
题意:给出一点,几个圆的圆心半径,问两条切线与x轴相交组成的区间,然后合并一下。这题我用解析做,精度损失的太高wa,然后又用极角做,还是精度问题,不过好把数的值扩大一些加上了eps之后过了。具体看代码。#include #include#include#include#includeusing namespace std;struct seg{ double l,
2013-06-19 15:21:07 1117
原创 HDU 4549 矩阵连乘
M斐波那契数列F[n]是一种整数数列,它的定义如下:F[0] = aF[1] = bF[n] = F[n-1] * F[n-2] ( n > 1 )现在给出a, b, n,你能求出F[n]的值吗?输出F[n]对1000000007取模后的值即可不难推出 f(n)=a^fib(n-2)*b^fib(n-1)%1000000007,所以通过欧拉定理或者费马小定理降幂,再用快速幂
2013-06-19 13:53:40 1068
原创 HDU 4569 长沙E题 枚举
题意:给你函数 f(x) = anxn +...+ a1x +a0最多N就4位,输入任意一个x使f(x)%(prime*prime)=0。这题枚举就可以,首先如果满足f(x)%(prime*prime)=0必须要满足f(x)%prime=0这个条件。那么应该先找到一个x满足f(x)%prime=0,然后在(x-prime*prime)区间内x+=prime(保证f(x)%prime=0
2013-06-18 14:10:13 1078
原创 HDU 4316 凸包+半面相交
题意:一个房间,在房间顶部有三个摄像头,房间有放有一个凸多面体的机器,问这个机器对摄像头在地面造成盲点的面积。房间顶部z=100,地面z=0。首先根据空间直线方程(x-x1)/(x1-x2)=(y-y1)/(y1-y2)=(z-z1)/(z1-z2) 求出每个摄像头与凸多面体连线与地面(z=0)的交点。在对这个摄像头在地面的交点求凸包,这个区域就个该摄像头盲区的面积,但是需要求三个盲区面积的交
2013-06-04 19:27:28 879
原创 POJ 2420 模拟退火求费马点
题意求一个多边形的费马点,即到所有顶点距离和最小的那一点。以前觉得模拟退火好高端的样子,实际就是把点往四个方向移动固定步长,知道不能移动后缩小步长继续移动,也就是随机求一个接近最优并且满足精度的解。#include #include#include#include#includeusing namespace std;typedef double diy;struct poi
2013-06-04 10:36:49 1280
原创 POJ 1434 二分
题意:给出离地高度b,和水箱的长宽高,给出水的容积,问装完水有多高。二分高度,裸二分。#include #include#include#includeusing namespace std;struct cistern{ double b,h,w,d;} data[50005];int n,t;double getans(double h){ doub
2013-06-03 16:53:18 858
原创 POJ 2002 hash+枚举
题意:给出n个点,问组成了多少个正方形。枚举两个点,求出另两个点然后hash看是否存在。不会hash,基本上是搬了黄大神的代码= =吗。#include #include#include#includeusing namespace std;const int mm=1005;const int mod=100007;struct point{ int x,y;}
2013-06-03 15:22:45 657
原创 HDU 4311 树状数组+二分
题意:给出10W个点,找出一个点使得每点按网格走到它的步数和最小,求最小步数和。每步这么走Eg: (x,y) can be reached from (x-1,y), (x+1,y), (x, y-1), (x, y+1).。a点到达b点的步数为abs(b.x-a.x)+abs(b.y-a.y) 那么a点到所有点的步数和为abs(pi.x-a.x)+abs(pi.y-ay)所以按照从小到大的顺
2013-06-01 12:35:15 748
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人