随笔分类 - HDU
摘要:简单的优先队列。。。View Code 1 /* 2 优先队列 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 #include<map>11 #include<vector>12 #include<math.h>13 using namespace std;14 typedef
阅读全文
摘要:对于斜率优化的dp还不是很懂。。。。。。。。。View Code 1 /* 2 dp+斜率优化 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 #include<math.h>11 using namespace std;12 const int maxn = 1000005;13 const int
阅读全文
摘要:View Code 1 /* 2 排序+优先队列 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 #include<map>11 #include<vector>12 #include<math.h>13 using namespace std;14 typedef long l
阅读全文
摘要:枚举支援的国家。。。View Code 1 /* 2 DFS 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue> 10 //#include<map> 11 #include<math.h> 12 using namespace std; 13 typedef long long ll; 14 //
阅读全文
摘要:solve(a,b,c)=a^b%cView Code 1 /* 2 快速求幂 3 solve(a,b,c)==a^b%c 4 */ 5 #include 6 #include 7 #include 8 #include 9 #include10 #include11 #include12 using namespace std;13 typedef __int64 int64;14 const int maxn = 10005;15 const int64 mod = 1000000007;16 int64 a[ maxn ],b[ maxn ];17 int solve( int64 m.
阅读全文
摘要:开一个二维数组记录星号的个数。。。。View Code 1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 using namespace std; 5 const int maxn = 2005; 6 int sum[ maxn ][ maxn ];//sum[i][j]:记录从mat 1 1到mat i j 的“ * ”的个数 7 int mat[ maxn ][ maxn ]; 8 char s[ maxn ]; 9 int main(){10 int n,m;11 whil
阅读全文
摘要:View Code 1 /* 2 最大连续上升子序列和 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 //#include<map>11 #include<math.h>12 using namespace std;13 typedef long long ll;14 //typedef
阅读全文
摘要:腾讯马拉松水~~注意是12小时一周期!!!!!!!!!!!!!!!!!!!!!!!View Code 1 #include<stdio.h> 2 #include<string.h> 3 struct node{ 4 int h,m,s,all; 5 }; 6 node now,pre,tmp; 7 int main(){ 8 int n; 9 scanf("%d",&n);10 while( n-- ){11 scanf("%d:%d:%d",&now.h,&now.m,&now.s);12 no
阅读全文
摘要:1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 using namespace std; 5 const int maxn = 205; 6 int a[ maxn ],b[ maxn ],dp[ maxn ]; 7
阅读全文
摘要:简单的并查集View Code 1 /* 2 并查集 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 //#include<map>11 #include<math.h>12 using namespace std;13 typedef long long ll;14 //typedef _
阅读全文
摘要:栈的应用View Code 1 /* 2 栈 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 #include<stack>11 //#include<map>12 #include<math.h>13 using namespace std;14 typedef long lo
阅读全文
摘要:点B到直线AC的距离 就是 |AB X AC|/|AC| ‘X’是叉乘 ’ || ‘表示模View Code 1 /* 2 三维+点到直线的距离 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 //#include<map>11 #include<math.h>12 using namesp
阅读全文
摘要:先算重心!!!!!!再算凸包!!!!!!!View Code 1 /* 2 几何+重心 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue> 10 //#include<map> 11 #include<math.h> 12 using namespace std; 13 typedef long l
阅读全文
摘要:详见代码View Code 1 /* 2 几何+线段相交 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 //#include<map>11 #include<math.h>12 using namespace std;13 typedef long long ll;14 //typedef
阅读全文
摘要:View Code 1 /* 2 几何+判断凸多边形 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 //#include<map>11 #include<math.h>12 using namespace std;13 typedef long long ll;14 //typedef _
阅读全文
摘要:详见代码View Code 1 /* 2 几何+判定点是否在多边形内 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<math.h> 8 const int maxn = 105; 9 const double eps = 1e-8;10 const int inf = 99999999;11 const int max_x = 1000;12 const int max_y = 1000;13 struct point{14 double
阅读全文
摘要:题意:给定一个多边形,让你求出其价值。价值的定义是:-p*凹面的个数+q*凸面的个数。。。。(其实参照了这个博客,才理解题意。。。。http://blog.csdn.net/juststeps/article/details/8666769)凸面的个数就是凸包中的点的个数,但是当出现凹面时,就会减少一个凸面,这是因为这时候的凸面是虚拟出来的!!!!!View Code 1 /* 2 凸包 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algor
阅读全文
摘要:题意:给定一些点,求最大三角形面积View Code 1 /* 2 凸包+最大三角形面积 3 */ 4 #include<stdio.h> 5 #include<string.h> 6 #include<stdlib.h> 7 #include<algorithm> 8 #include<iostream> 9 #include<queue>10 //#include<map>11 #include<math.h>12 using namespace std;13 typedef long long
阅读全文
摘要:题意:给定一些节目单的时间,求最多能看完整的节目数。把这些节目当成点,若下一个节目在上一个节目时间之后 则连上一条有向边 最后枚举起点求最长路。。。。View Code 1 #include<stdio.h> 2 #include<algorithm> 3 #include<queue> 4 using namespace std; 5 const int maxn = 105; 6 const int maxm = 10005; 7 const int inf = 99999999; 8 struct node{ 9 int s,t;10 };11 nod
阅读全文
摘要:题意:求多边形面积。首先 对于两个向量 P,Q。P * Q = 1/2*area;以原点作为每条向量边的起始点,然后在遍历一遍所有的点,得到res这样在算面积的时候 多余的部分会在计算过程中 正负抵消 so 能得到sum_areaView Code 1 #include<stdio.h> 2 #include<math.h> 3 const int maxn = 105; 4 int n; 5 struct node{ 6 int x,y; 7 }a[ maxn ]; 8 9 double cross( node a,node b ){10 return 1.0*a.x
阅读全文