模 板
文章平均质量分 65
嘟嘟洒水车
2
展开
-
扩展欧几里得
/*==================================================*/| 求ax+by=z的整数解| CALL:void ex_gcd(x,y,a,b);| a、b为未知数。有解的前提是xy的最大公约数是z的约数。/*==================================================*/__int64 Z;void原创 2011-04-10 10:58:00 · 636 阅读 · 0 评论 -
网络流Dinic模板 1.2正式版
#define INF 2000000000#define typec int//type of costconst int pN=600000,eN=3000000;struct Edge{ int u,v,next; typec w;};Edge edge[eN];int en,head[pN],cur[pN],ps[pN],dep[pN];void insert(int u转载 2011-08-29 18:21:15 · 877 阅读 · 0 评论 -
旋转卡壳 求最远点对
struct point{ int x,y; point(){} point(int xx,int yy){x=xx;y=yy;} point operator-(point const &b)const{ return point(x-b.x,y-b.y); } int friend operator*(point a,point b){ return f_abs(a.x*b转载 2012-06-19 00:21:16 · 1091 阅读 · 0 评论 -
求直线交点
Point intersection(Line l1,Line l2){//面积比求出交点之比 Point ret = l1.s; double t = ((l1.s.x - l2.s.x) * (l2.s.y - l2.e.y) - (l1.s.y - l2.s.y) * (l2.s.x - l2.e.x)) /((l1.s.x - l1.e.x) *转载 2010-12-10 22:20:00 · 662 阅读 · 0 评论 -
AC自动机
#include #include #define Chr 26//字符最大个数 using namespace std; struct Node{ int next[Chr],fail; bool dang; //fail 实际是跳到了当前字符串的最长后缀的节点处 }; Node node[300000]; int tN,hash[原创 2011-07-20 21:31:04 · 892 阅读 · 4 评论 -
三角形外接圆圆心
Point circle_center(Point pt[3]) { double x1,x2,x3,y1,y2,y3; double x = 0; double y = 0; x1 = pt[0].x; x2 = pt[1].x;转载 2012-07-10 18:51:19 · 1148 阅读 · 0 评论 -
DLX模板+小栗子
把别人的数独代码改了下就当自己模板了=。=,听说要启发函数效率才高=。=,下次再改改吧=。=#include#include#includeusing namespace std;#define RN 1000#define CN 500#define NN 6000class DLX{private: int U[NN],D[NN],L[NN],R[NN]; //每个原创 2012-01-24 22:48:48 · 746 阅读 · 0 评论 -
三维凸包+点到平面距离+已知3点求平面方程
/*==================================================*\ | 3D凸包 | CALL: 构建凸包 = construct(); \*==================================================*/ #define TPN 1010struct TPoint{ double转载 2012-08-27 15:51:21 · 9408 阅读 · 2 评论 -
后缀数组1.1 支持数字串
#define SIZE 200005 char S[SIZE];int N,sa[SIZE], height[SIZE], rank[SIZE], tmp[SIZE], top[SIZE]; int rmq[SIZE][20]; //S[] 字符串//N 字符串长度//rank[i] i是第几名 //sa[i] 第i名是什么//height[i] 第i名和第i-1名的最长公共前缀转载 2011-10-09 00:47:34 · 680 阅读 · 1 评论 -
凸包和重心求法
/*==================================================*\ | Graham 求凸包 O(N * logN) | CALL: nr = graham(pnt, int n, res); res[]为凸包点集; \*==================================================*/ struct转载 2010-12-12 20:34:00 · 1435 阅读 · 0 评论 -
最小树形图
/*==================================================*\| 有向图最小树形图| INIT: edge置为边表; res置为0; cp[i]置为i;| CALL: dirtree(root, nv, ne); res是结果;\*==================================================*/cons转载 2012-01-06 18:44:00 · 640 阅读 · 0 评论 -
求日期什么的
#includeint month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};char Month[13][10]={"","January","February","March","April","May","June","July","August","September","October","November","December"};char DayofWeek[7][10]={"Monday","Tuesday","Wednesday","Thurs原创 2010-12-22 21:08:00 · 667 阅读 · 0 评论 -
极简约版正大数加法
<br />#include<iostream><br />#include<cstring><br />#define L 1000000000<br />class bignum{<br />private:<br /> int Num[101],Len;<br />public:<br /> bignum(){Num[0]=0;Len=0;}<br /> friend bignum operator+(bignum a,bignum b){<br /> int i,l1=a.Len,l2=b.Len原创 2010-12-24 15:47:00 · 585 阅读 · 0 评论 -
求N!最右位非0数模板
看不懂,先放着……#include#include#define maxn 10000 int lastdigit(char*buf) { const int mod[20]={1,1,2,6,4,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2}; int len=strlen(buf),a[maxn],i,c,ret=1; if(len==1) return mod[buf[0]-'0']; for(i=0;i a[i]=buf[len-1-i]-'0'; for(;len;len-转载 2011-01-20 23:41:00 · 738 阅读 · 0 评论 -
最小覆盖圆
#include#include#define eps 1e-6struct Point{ double x,y;};struct Circle{ Point c; double r;};double dist(Point a,Point b){ return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));}Circle calc(Point p1,Point p2,Point p3){ Circle te转载 2011-01-27 21:57:00 · 2636 阅读 · 3 评论 -
SAP
/*最大流构图题*//*AC代码:0ms*/#include #define INF 99999999#define min(a,b) (a#define MAXN 405//D+N+N+Fusing namespace std;struct edge{ int v,next,w; }E[20000];int head[MAXN],ecnt;int cur[MAXN],dis[MAXN],gap[MAXN],pre[MAXN];int N,F,D;int scr,sink,vn;//源点和汇点void In原创 2011-04-10 00:16:00 · 588 阅读 · 0 评论 -
有向图缩点
/*****************************\| 有向图缩点| CALL:void reduce_point();| N,M分别为点数边数| fa[]记录缩点后每个点属于哪个点\*****************************/int f_m原创 2011-07-07 21:14:27 · 1210 阅读 · 0 评论 -
创建BMP图像
void Create_Image(){ FILE *fp; int i,j; unsigned char c, d; BITMAPFILEHEADER *bitmapFileHeader; BITMAPINFOHEADER *bitmapInfoHeader; if((fp=fopen("b_1.bmp", "wb")) == NULL){ fprintf原创 2013-04-07 15:09:03 · 1625 阅读 · 0 评论