ACM
文章平均质量分 50
guoxianzhuang
青青子衿,悠悠我心,但为君故,沉吟至今!
展开
-
POJ1269
直线相交,平行,重合模板。。一、判断是否共线 相当于判断三点是否共线,叉积等0是即为共线。二、判断是否平行 设向量A=(a,b) 向量B=(c,d) 若向量A与B平行则a/c=b/d;三、求交点这里也用到叉积的原理。假设交点为p0(x0,y0)。则有:(p1-p0)X(p2-p0)=0(p3-p0)X(p2-p0)=0展开后即是(y1-y2原创 2012-11-25 22:42:09 · 651 阅读 · 0 评论 -
poj1654叉积求多边形面积
叉积求多边形面积题意:以二维坐标的原点为起点,每次只走一步,每步只走根号2的长度或1的长度,且每步走的方向八个:上/下/左/右/左上/左下/右上/右下,而且每个方向用一个数字代替,1 2 3 4 6 7 8 9,5代表终止,即最后一步回到了原点,构成了多边形。现在给定一个以数字组成的字符串,字符串的每一个数字字符代表了走的方向,问走的路线构成的多边形的面积是多少?算原创 2015-03-25 19:19:00 · 804 阅读 · 0 评论 -
三出口函数:解决计算几何中的精度问题
一个三出口函数很地解决精度的问题。int dblcmp(double d){ if(fabs(s) return 0; return (d>0)?1:-1;//对于给定的精度的左右偏离方向。。}原创 2015-03-25 19:10:48 · 516 阅读 · 0 评论 -
图论专题 二分图
图论专题 二分图二分图:二分图是这样一个图,它的顶点可以分类两个集合X和Y,所有的边关联的两个顶点恰好一个属于集合X,另一个属于集合Y。二分图匹配:给定一个二分图G,在G的一个子图M中,M的边集中的任意两条边都不依附于同一个顶点,则称M是一个匹配。最大匹配:图中包含边数最多的匹配称为图的最大匹配。完美匹配:如果所有点都在匹配边上,则称这个最大匹配是完美匹配。转载 2015-03-25 17:50:44 · 676 阅读 · 0 评论 -
计算几何:非规范相交的模板
计算几何:非规范相交的模板int segcross(point a,point b,point c,point d){ double s1,s2,s3,s4; int d1,d2,d3,d4; d1=dblcmp(s1=cross(a,b,c)); d2=dblcmp(s2=cross(a,b,d)); d3=dblcmp(s3=cross(c,d,a)); d4=d原创 2015-03-25 17:54:28 · 897 阅读 · 0 评论 -
hdu1392标准求凸包模板
标准求凸包模板#include#include#include#includeusing namespace std;#define N 103#define EPS 1e-8struct point{double x;double y;}p[N];point cur;int s[N];int top;int dblcmp(doubl原创 2015-03-25 19:09:26 · 536 阅读 · 0 评论 -
poj1654叉积求多边形面积
叉积求多边形面积#includeint a[10][2]={{0,0},{-1,-1},{0,-1},{1,-1},{-1,0},{0,0},{1,0},{-1,1},{0,1},{1,1}};//方向向量,想起了广搜的方向向量。。。int main(){ __int64 area; int i,n; char ch; int x1,y1,x2,y2;原创 2015-03-25 19:17:53 · 543 阅读 · 0 评论 -
多边形重心模板
多边形重心模板#include #include #include using namespace std;struct point{double x;double y;};//求多边形的重心算法//说明://求多边形重心并不是简单的把求三角形的重心公式推广就行了//我的算法是在平面上取一点(一般取原点, 这样可以减少很多计算, 而且原创 2015-03-25 17:52:33 · 629 阅读 · 0 评论 -
叉积模板
double det(double x1,double y1,double x2,double y2)//经常用的叉积模板 { return x1*y2-x2*y1;}double cross(point a,point b,point c)//经常用的叉积模板。。 { return det(a.x-c.x,a.y-c.y,b.x-c.x,b.y-c.y);原创 2015-03-25 19:13:13 · 578 阅读 · 0 评论 -
poj1269直线相交,平行,重合模板
直线相交,平行,重合模板。。一、判断是否共线 相当于判断三点是否共线,叉积等0是即为共线。二、判断是否平行 设向量A=(a,b) 向量B=(c,d) 若向量A与B平行则a/c=b/d;三、求交点这里也用到叉积的原理。假设交点为p0(x0,y0)。则有:(p1-p0)X(p2-p0)=0(p3-p0)X(p2-p0)=0展开后即是原创 2015-03-25 19:14:42 · 685 阅读 · 0 评论 -
计算几何:规范相交模板
规范相交模板struct point{double x,y;};double det(double x1,double y1,double x2,double y2){return x1*y2-x2*y1;}double cross(point a,point b,point c){return det(a.x-c.x,a.y-c.y,b.x-c.x,b原创 2015-03-25 19:01:18 · 779 阅读 · 0 评论 -
计算几何算法概览
计算几何算法概览超全的计算几何的算法啊。。。。真是老牛啊。。。。http://dev.gameres.com/Program/Abstract/Geometry.htmhttp://dev.gameres.com/Program/Abstract/Geometry.htmhttp://dev.gameres.com/Program/Abstract/Geometry.htm原创 2015-03-25 19:07:20 · 575 阅读 · 0 评论 -
poj2484----简单博弈
// Creat By 郭仔 2015年3月29日9:08:33#include#include#include#include#include#include#include#include#include#include#include#include#include原创 2015-03-29 09:12:11 · 1147 阅读 · 0 评论 -
poj1094----拓扑排序
// Creat By 郭仔 2015年3月29日9:12:52//画图演示一遍就能很好的理解了/*题意:输入n, m,n表示26个大写字母组成的字母表中前n个字母,m表示将输入m对字母的大小关系式,(ch1 (1)如果出现ch1 ch2则表示这n个字母是inconsistency。(2)能确定有惟一这n个的字母的拓扑序。*///(3)不能根据输入的原创 2015-03-29 09:15:33 · 683 阅读 · 0 评论 -
pku2528----区间染色成段更新
// Creat By 郭仔 2012年3月29日10:16:59区间染色的变形,不过比区间染色问题要难一些~用到区间染色成段更新,hash,离散化,蛋疼的提题意:在墙上贴海报,海报可以互相覆盖,问最后可以看见几张海报思路:这题数据范围很大,直接搞超时+超内存,需要离散化:离散化简单的来说就是只取我们需要的值来用,比如说区间[1000,2原创 2015-03-29 10:20:32 · 1415 阅读 · 0 评论 -
pku3468----成段更新区间求和
小心越界每次在修改节点的sum值时,如果每次都下放到叶子节点,那么复杂度会变成nlogn,还不如直接暴力(树状数组还sqrt(n)呢,虽然我不会),而且对于某些修改一大段值的问题,用线段树动态维护的时候,如果找到了要修改的大区间,可以直接在这个大区间上标记,然后改掉sum值,等下次修改或者查询时再修改或者查询它的标记值,这样就可以做到每次查询或修改都为logn,大大节省了时间。#inclu原创 2015-03-27 18:11:25 · 718 阅读 · 0 评论 -
计算几何:点积的模板
点积的模板double dotdet(double x1,double y1,double x2,double y2){return x1*x2+y1*y2;}double dot(point a,point b,point c){return dotdet(a.x-c.x,a.y-c.y,b.x-c.x,b.y-c.y);}int betweenCmp(poi原创 2015-03-25 19:04:11 · 694 阅读 · 0 评论 -
判断两线段相交的模板
判断两线段相交的模板蛋疼死了,编了半天还是WA,。# include# includestruct Node{ double x,y;}point1[105],point2[105];double Cross(Node p1,Node p2,Node p3){ return (p2.x-p1.x)*(p3.y-p1.y)-(p2.y-p1.y)*(p3.原创 2015-03-25 19:06:15 · 560 阅读 · 0 评论 -
POJ1654叉积求多边形面积
poj1654叉积求多边形面积叉积求多边形面积题意:以二维坐标的原点为起点,每次只走一步,每步只走根号2的长度或1的长度,且每步走的方向八个:上/下/左/右/左上/左下/右上/右下,而且每个方向用一个数字代替,1 2 3 4 6 7 8 9,5代表终止,即最后一步回到了原点,构成了多边形。现在给定一个以数字组成的字符串,字符串的每一个数字字符代表了走的方向,问走的路线构成的多边形的面积原创 2012-11-24 20:02:42 · 1798 阅读 · 0 评论 -
二分匹配算法总结
一、二分图最大匹配 二分图最大匹配的经典匈牙利算法是由Edmonds在1965年提出的,算法的核心就是根据一个初始匹配不停的找增广路,直到没有增广路为止。 匈牙利算法的本质实际上和基于增广路特性的最大流算法还是相似的,只需要注意两点:(一)每个X节点都最多做一次增广路的起点;(二)如果一个Y节点已经匹配了,那么增广路到这儿的时候唯一的路径是走到Y节点的匹配点(可以转载 2012-11-21 22:04:01 · 1353 阅读 · 0 评论 -
hdu1394 暴力解法~
越来越不行了,菜屎了~~#include#include#includeint t[5003];int main(){ int n,i,j; int min,sum; while(scanf("%d",&n)!=EOF) { sum=0; for(i=0;i {原创 2012-11-11 21:25:20 · 801 阅读 · 1 评论 -
POJ2348
不知道怎么了,错的要死~~泥煤的蛋疼#include#include#include#include//#define max(a,b) a>b?a:b//#define min(a,b) a>b?b:ausing namespace std;int main(void){int k,t,i,j;int m,n;int large,smale;原创 2012-11-12 18:31:27 · 500 阅读 · 0 评论 -
经常用的叉积模板!
经常用的叉积模板 double det(double x1,double y1,double x2,double y2)//经常用的叉积模板 { return x1*y2-x2*y1;}double cross(point a,point b,point c)//经常用的叉积模板。。 { return det(a.x-c.x,a.y-c.y,b.x-原创 2012-11-26 21:25:27 · 770 阅读 · 0 评论 -
三出口函数解决计算几何精度问题!
。。。。熟能生巧哦。。。。一个三出口函数很地解决精度的问题。int dblcmp(double d){ if(fabs(s) return 0; return (d>0)?1:-1;//对于给定的精度的左右偏离方向。。}原创 2012-11-27 22:04:45 · 517 阅读 · 0 评论 -
hdu1339
#include #includeint main(int argc, char *argv[]){ int i,j,m,n,t; int p; scanf("%d",&t); for(i=0;i scanf("%d",&n); if(n%2!=0) { printf("%d %d\n",n,0); continue; } el原创 2012-11-13 19:10:22 · 441 阅读 · 0 评论 -
2080用的Floy果断超时,留个纪念哦.cpp
#include #include#define max 1009#define MAX 100000000int map[max][max];int d[max][max];int main(int argc, char *argv[]){ int n,m,i,j,k,s,t; int mx; int a,b,c; while(scanf("%d%d%原创 2012-11-13 19:11:24 · 729 阅读 · 1 评论 -
1869最短路径,弗洛伊的算法.cpp
#include #include#include#define max 2int map[105][105];int d[105][105];int main(int argc, char *argv[]){ int n,i,j,k,t,m; int a,b; while(scanf("%d%d",&n,&m)!=EOF){ for(i=0;i原创 2012-11-13 19:12:06 · 519 阅读 · 0 评论 -
hdu1412
#include#include#include#includeusing namespace std;int cmp(int a,int b){ return a}int main(int argc, char *argv[]){ int a,b,m,n,i,j; int c1[20000]; while(scanf("%d%d",&m,&n)!=原创 2012-11-13 19:01:46 · 468 阅读 · 0 评论 -
HDU1564
博弈找规律的题目,不好找啊~~//蛋疼的题目,博弈题但没想到规律竟是如此简单,不好发现啊,原来博弈题有的时候就是找规律的啊 #include #include#include#includeusing namespace std;int main(int argc, char *argv[]){int m,n,i,k;while(cin>>n){if原创 2012-11-15 14:13:27 · 621 阅读 · 0 评论 -
POJ1740
/*寻找必败态,若是一对一对相等的情况则是必败态,先走者必败。其余情况按照最有策略则为必胜态先走者必胜 */ #include #include#include#include#include#includeusing namespace std;int main(int argc, char *argv[]){bool pile[102];in原创 2012-11-15 14:12:24 · 485 阅读 · 0 评论 -
经典博弈!
转载:http://blog.csdn.net/bool_isprime/archive/2010/08/10/5801934.aspxpku2234 Matches game!!!!!hdu1846 brave game. if(n%(m+1)==0)n是必败点 !!!!!!pku2484 A Funny Game. if(n>=3)n是必败点 !!!!!!hdu1851 A S转载 2012-11-17 22:23:43 · 466 阅读 · 0 评论 -
POJ2484
#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;int main原创 2012-11-17 22:05:52 · 529 阅读 · 0 评论 -
杭电1086
hdu1086判断两线段相交的模板# include# includestruct Node{ double x,y;}point1[105],point2[105];double Cross(Node p1,Node p2,Node p3){ return (p2.x-p1.x)*(p3.y-p1.y)-(p2.y-p1.y)*(p3.x-p1.x);}d原创 2012-11-18 22:38:50 · 596 阅读 · 0 评论 -
计算几何:点积模板
计算几何:点积的模板点积的模板double dotdet(double x1,double y1,double x2,double y2){ return x1*x2+y1*y2;}double dot(point a,point b,point c){ return dotdet(a.x-c.x,a.y-c.y,b.x-c.x,b.y-c.y);}in原创 2012-11-18 22:41:07 · 567 阅读 · 0 评论 -
计算几何:规范相交模板
规范相交模板struct point{ double x,y;};double det(double x1,double y1,double x2,double y2){ return x1*y2-x2*y1;}double cross(point a,point b,point c){ return det(a.x-c.x,a.y-c.y,b.x-c.原创 2012-11-18 22:42:16 · 493 阅读 · 0 评论 -
计算几何:非规范相交模板
非规范相交的模板 int segcross(point a,point b,point c,point d){ double s1,s2,s3,s4; int d1,d2,d3,d4; d1=dblcmp(s1=cross(a,b,c)); d2=dblcmp(s2=cross(a,b,d)); d3=dblcmp(s3=cross(c,d,a)); d4=db原创 2012-11-19 21:55:39 · 581 阅读 · 0 评论 -
计算几何:多边形重心模板
多边形重心模板#include #include #include using namespace std;struct point{double x;double y;};//求多边形的重心算法//说明://求多边形重心并不是简单的把求三角形的重心公式推广就行了//我的算法是在平面上取一点(一般取原点, 这样可以减少很多计算, 而且使思路更清晰原创 2012-11-20 22:24:16 · 655 阅读 · 0 评论 -
HDU1253-胜利大逃亡
好久不A题了,时间也越来越少了,看看以前的题目,温故而知新!题目描述:http://acm.hdu.edu.cn/showproblem.php?pid=1253Input输入数据的第一行是一个正整数K,表明测试数据的数量.每组测试数据的第一行是四个正整数A,B,C和T(1特别注意:本题的测试数据非常大,请使用scanf输入,我不能保证使用cin能不超时.在原创 2015-08-13 22:26:19 · 2236 阅读 · 0 评论