
模板
Tang7O
博客已转个人网站,本博客停止更新。
展开
-
四点是否为正方形
double Distance(int x1,int y1,int x2,int y2){//求边长 return sqrt(pow((x1-x2),2)+pow((y1-y2),2));}bool IsRightAngle(int x1,int y1,int x2,int y2,int x3,int y3){//判断是否为直角 if((x2-x1)*(x3-x1)+(y2-y...原创 2019-11-05 19:50:54 · 185 阅读 · 0 评论 -
扫描线
题意:二维平面有n个平行于坐标轴的矩形,现在要求出这些矩形的总面积. 重叠部分只能算一次.分析:线段树的典型扫描线用法.首先假设有下图两个矩阵,我们如果用扫描线的方法如何计算它们的总面积呢?首先我们将矩形的上下边分为上位边(即y坐标大的那条平行于x轴的边),和下位边(y坐标小的平行于x轴的边).然后我们把所有矩形的上下位边按照他们y坐标从小到大排序,可以得到4条扫描线:又因为上面2...原创 2019-10-16 19:08:29 · 151 阅读 · 0 评论 -
扩展KMP
摘自 拓展kmp算法总结1、扩展KMP是什么?解决何种问题?与KMP算法的异同?拓展kmp是对KMP算法的扩展,它解决如下...转载 2019-10-02 11:01:34 · 2087 阅读 · 1 评论 -
整体二分(poj 2104)
所谓整体二分,需要数据结构题满足以下性质:询问的答案具有可二分性修改对判定答案的贡献相对独立,修改之间互不影响效果修改如果对判定答案有贡献,则贡献为一确定的与判定标准无关的值贡献满足交换律,结合律,具有可加性题目允许离线操作不妨先来考虑下一个简单易懂的????(????????????????????)的排序算法(????为数值范围)这个方法是自己在思考整体二分的时候????????的 虽然在实际应用上没什么意义 但是有助于理解整体...原创 2019-10-01 17:26:15 · 202 阅读 · 0 评论 -
素数打表
哈希算法原理:定义一个数组,标记你需要的数据。例题:输出(a,b)(1<a,b<10000)内(包括a b)的所有素数。#include<stdio.h>int main(){ int s[10000]={0},a,b,i,j; for(i=2;i<10000;i++) //素数从2开始 if(s[i]==0) for(j=i*i;j<原创 2018-11-22 13:01:03 · 116 阅读 · 0 评论 -
快速素数打表
这是一种快捷的素数打表方法,规律是除2,3以外,所有的素数要么是6的倍数加1,要么减1;prime[2]=prime[3]=1;for (int i=5; i<10000; i++){ if ((i+1)%6==0||(i-1)%6==0) { int j; for (j=2; j<(int)(sqrt(i)+1); j++) ...原创 2019-03-19 20:32:41 · 541 阅读 · 0 评论 -
KMP算法模板(自用)
nex[i]存的是从字符串起点到下标位i的字符真前缀和真后缀相同的最大长度void Getnex(char * m){ nex[0]=-1; int k=-1,j=0; int len=strlen(m); while(j<len) { if(k==-1||m[k]==m[j]) { k++;...转载 2019-08-05 09:16:25 · 130 阅读 · 0 评论 -
Manacher算法模板(求解最长回文串)
int cnt[MAXn];char String[MAXn];void Manacher(char s[],int len) {//原字符串和串长 int l = 0; String[l++] = '$'; // 0下标存储为其他字符,防止越界 String[l++] = '#'; for (int i = 0; i < len; i++) { ...转载 2019-08-05 09:11:08 · 124 阅读 · 1 评论 -
ac自动机模板(自用)
从多个字符串中查找是否有某个字符串#include <queue>#include <cstdlib>#include <cmath>#include <cstdio>#include <string>#include <cstring>#include <iostream>#include <...转载 2019-08-05 09:09:19 · 122 阅读 · 0 评论 -
EXGCD
void exgcd(ll a,ll b,ll &x,ll &y){ if(b==0){x=1;y=0;} else {exgcd(b,a%b,y,x);y-=(a/b)*x;}}原创 2019-08-15 09:08:58 · 214 阅读 · 0 评论 -
LCA(在线ST+tarjan)模板
在线ST#include <iostream>#include <cstring>#include <cstdlib>#include <algorithm>#include <queue>#include <stack>#include <cmath>#include <cstdio>...原创 2019-09-21 21:15:00 · 154 阅读 · 0 评论 -
Tarjan 算法求强连通分量
#include <algorithm>#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <map>#include <queue>#inclu...原创 2019-09-21 21:12:36 · 131 阅读 · 0 评论