上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 52 下一页
摘要: 偶然碰到这个算法,学习下。 这样可以在O(n^3)的时间内找出非二分图的最大匹配。 #include <cstdio> #include <algorithm> #include <set> #include <vector> using namespace std; const int NMax= 阅读全文
posted @ 2016-03-03 21:37 chenhuan001 阅读(379) 评论(0) 推荐(0) 编辑
摘要: 1.普通素数筛选模板 最普通的方法。。。 2.快速素数筛选 这种方法经证明只需要2n的复杂度,但是因为有*,/,%等运算,所以只比一般素数筛选快3倍左右。 关于复杂度的证明,用整体的思路就很好证明,算法由一层循环O(n)再加上所有产生的合数,可以证明每个合数都会被产生一次且仅一次。 所以这个算法每一 阅读全文
posted @ 2016-03-01 17:20 chenhuan001 阅读(504) 评论(0) 推荐(0) 编辑
摘要: 题意无比诡异。 http://acm.timus.ru/problem.aspx?space=1&num=1716 俄罗斯的英文简直把我吓尿。 题意是对于输入:X1X2X3X4(Xi为YES或NO) 装变为 Y X1X2X3 然后问xi对应的错误的期望个数。 每种情况都是等概率的。 然后用dp做 d 阅读全文
posted @ 2016-03-01 11:00 chenhuan001 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 妹的,一直没有想清楚无解的情况到底是如何判断的。 偷来一个模板。 半平面交的结果:1.凸多边形(后面会讲解到)2.无界,因为有可能若干半平面没有形成封闭3.直线,线段,点,空(属于特殊情况吧) 算法:1:根据上图可以知道,运用给出的多边形每相邻两点形成一条直线来切割原有多边形,如果多边形上的点i在有 阅读全文
posted @ 2016-02-18 16:49 chenhuan001 阅读(347) 评论(0) 推荐(0) 编辑
摘要: /*给出三维空间中的n个顶点,求解由这n个顶点构成的凸包表面的多边形个数. 增量法求解:首先任选4个点形成的一个四面体,然后每次新加一个点,分两种情况: 1> 在凸包内,则可以跳过 2> 在凸包外,找到从这个点可以"看见"的面,删除这些面, 然后对于一边没有面的线段,和新加的这个点新建一个面,至于这 阅读全文
posted @ 2016-02-13 14:43 chenhuan001 阅读(409) 评论(0) 推荐(0) 编辑
摘要: /*给出三维空间中的n个顶点,求解由这n个顶点构成的凸包表面的多边形个数. 增量法求解:首先任选4个点形成的一个四面体,然后每次新加一个点,分两种情况: 1> 在凸包内,则可以跳过 2> 在凸包外,找到从这个点可以"看见"的面,删除这些面, 然后对于一边没有面的线段,和新加的这个点新建一个面,至于这 阅读全文
posted @ 2016-02-13 13:32 chenhuan001 阅读(350) 评论(0) 推荐(0) 编辑
摘要: //求两条直线之间的关系(三维) //输入:两条不为点的直线 //输出:相交返回XIANGJIAO和交点p,平行返回PINGXING,共线返回GONGXIAN int LineAndLine(Line3D L1,Line3D L2,Point3D &p) { Point3D px,py; px = 阅读全文
posted @ 2016-01-30 16:31 chenhuan001 阅读(1086) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include #include #include #include using namespace std; #define MAX_N 110 /*------------------常量区-------------------*/ const double INF = 1e10; // 无穷... 阅读全文
posted @ 2016-01-29 01:08 chenhuan001 阅读(606) 评论(0) 推荐(0) 编辑
摘要: 简单的题意,要注意z2 = h2*0.9-r2 #include <iostream> #include <cmath> #include <vector> #include <string.h> #include <stdlib.h> #include <algorithm> using name 阅读全文
posted @ 2016-01-29 01:07 chenhuan001 阅读(286) 评论(0) 推荐(0) 编辑
摘要: void CirAndCut(Point psn[],int n,Point psm[],int m) { int nid=0,mid=0; for(int i=1;i<n;i++) if(psn[i].y>psn[nid].y) { nid=i; } for(int i=1;i<m;i++) if 阅读全文
posted @ 2016-01-28 13:32 chenhuan001 阅读(264) 评论(0) 推荐(0) 编辑
上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 52 下一页