- 博客(8)
- 收藏
- 关注
原创 [C++ STL] 优先队列容器 priority_queue
结构:与队列一样,只能从队尾插入元素,从队首删除元素。 优先队列特征:队首总是队列中最大的元素,出队的规则不是先进先出,而是当前最大的元素出队。在C++中可以通过对" C++ STL priority_queue 头文件:queue 操作:插入元素--------------------push(); 出队-------------------------
2013-10-06 22:57:38 640
原创 计算几何模板 (三维几何函数库)
/*******三维几何*******/ #include #include #include #define zero( x ) ( ( ( x ) > 0 ? ( x ) : -( x ) ) < eps ) const double eps = 1e-8; struct point3 { double x, y, z; };
2013-10-03 22:47:02 935
原创 HDU 1452 Happy 2004(因子和)
/************************************************************* 计算 2004^X的因子和 s(2004^X) mod M, M=29 s(2004^X)%29 因子和 s是积性函数,即 :gcd(a,b)=1==> s(a*b)= s(a)*s(b) 2004^X=4^X * 3^X *167^X
2013-10-03 22:31:20 615
原创 UVa 11292 Dragon of Loowater
题目大意:有一条有很多头的龙,现在要雇佣骑士杀掉这条龙(即杀掉龙的所有头),龙有n个头,有m个骑士,每条龙头的直径为x,每个骑士的能力值为y,y>x的时候才能砍掉龙头,每个骑士只能砍一条龙头,骑士不能被重复雇佣,雇佣每个骑士的花费和他的能力值相同为y。给出龙头数量n和骑士数量m,同时给出每个龙头的直径和每个骑士的能力值,如果可以杀掉龙就输出雇佣骑士的总花费,如果不能杀掉龙,则输出:”Loowate
2013-10-03 22:27:01 529
原创 POJ 1125 Stockbroker Grapevine
多源最短路径(Floyd暴力求解~) #include #include using namespace std; const int maxn = 9; const int maxint = 1000000000; int f[maxn][maxn], n; void floyd() { for( int k = 1; k <= n; k++ )
2013-10-03 22:15:27 555
原创 POJ 2653 Pick-up sticks
从第一个开始判断,如果两条线段相交就把前面一条筛选掉,直接暴力刷过~~~ #include #include #include using namespace std; const int maxn = 100000 + 5; const double eps=1e-10; struct point { double x, y; }; point p[maxn
2013-10-03 22:11:02 452
原创 POJ 1269 Intersecting Lines
判断直线相交及求交点,可能会有斜率不存在的情况 #include #include int main() { double x1, y1, x2, y2, x3, y3, x4, y4; int n; double k1, k2; double b1, b2; double i_x, i_y; scanf("%d", &n
2013-10-03 22:07:10 454
原创 求两个或N个数的最大公约数(gcd)和最小公倍数(lcm)的较优算法
//两个数的最大公约数--欧几里得算法 int gcd( int a, int b ) { if( a < b ) swap( a, b ); if( b == 0 ) return a; else return gcd( b, a % b ); } //n个数的最大公约数算法 //说明: //把n个数保存为一个数组
2013-10-03 22:02:41 887
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人