![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
其它
SolarDomo
每天都被头像萌醒
展开
-
扫描线 模板
测试题目:HDU 1542using namespace std; const int maxn = 100 + 5; const int TOT_SEG = maxn * 2; /** Seg ** l,r,h 分别为线段的左端点,右端点,高 ** f 标识上下边 */ struct Seg{ int f; double l,r,h; void set(double l原创 2016-10-12 10:44:06 · 494 阅读 · 0 评论 -
对拍程序
@echo off :loop rand.exe > rand.txt std.exe < rand.txt > std.txt my.exe < rand.txt > my.txt fc std.txt my.txt if not ErrorLevel 1 goto loop pause原创 2016-10-13 16:49:00 · 230 阅读 · 0 评论 -
HDU 5925 Coconuts 离散化 + BFS
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5925题意:一个棋盘上有黑点,白点,问有几块四联通的白点,输出联通块的大小在每个黑点上花横竖线就可以把棋牌离散化,大小最大400 * 400 ,之后求离散后的棋牌白点四联通块即可代码:#include <bits/stdc++.h> #define sf scanf #define pf printf u原创 2016-10-13 10:34:50 · 399 阅读 · 0 评论 -
C++大整数模板 BigInteger
网上找的模板#include <cstdio> #include <algorithm> #include <cstring> using namespace std;struct BigInteger{ int A[25]; enum{MOD = 10000}; BigInteger(){memset(A, 0, sizeof(A)); A[0]=1;} void转载 2016-08-13 20:56:00 · 2724 阅读 · 0 评论 -
快速输入模板
整数inline bool scan_d(int &num) { char in;bool IsN=false; in=getchar(); if(in==EOF) return false; while(in!='-'&&(in<'0'||in>'9')) in=getchar(); if(in=='-'){ Is转载 2016-08-14 19:11:29 · 443 阅读 · 0 评论 -
后缀数组 倍增算法模板
int wa[maxn],wb[maxn],wv[maxn],ws[maxn]; int cmp(int *r,int a,int b,int l) {return r[a]==r[b]&&r[a+l]==r[b+l];} void da(int *r,int *sa,int n,int m) { int i,j,p,*x=wa,*y=wb,*t; for(i=0;i<m;i++) ws[i]=0;原创 2016-08-19 10:42:08 · 846 阅读 · 1 评论 -
树链剖分模板
const int maxn = 100000 + 5; //树中节点个数 //边集 struct Edge{ int v,pre,c; }Es[maxn * 2]; int head[maxn],TOT_EDGE; void INIT_EDGE(){ //边集初始化 memset(head,-1,sizeof head);原创 2016-09-19 20:01:42 · 252 阅读 · 0 评论 -
Treap 模板
/** ** ch:节点的孩子节点 ** fa:夫节点 ** fix;优先级 ** size:当前子树的大小 ** tot:节点个数(包括sroot) ** sroot:超级根节点 ** key:节点的键值 */ const int maxn = 15000 + 50,INF = 0x7fffffff; int ch[maxn][2],fa[maxn],fix[maxn],size[m原创 2016-09-26 10:09:22 · 239 阅读 · 0 评论 -
伸展树模板
已过的题:HDU 4585/** ---- SPLAY ---- **/ int ch[maxn][2],fa[maxn],size[maxn]; int key[maxn],pos[maxn]; int tot,root,sroot; void Splay_Init(){ tot = 1; root = sroot = 0; ch[0][0] = ch[0][1] = 0;原创 2016-09-26 11:20:03 · 383 阅读 · 0 评论 -
字典树模板
测试题:struct Trie{ /** * maxnode: Trie树中最多可能的节点个数 上限为字符串个数 * 最长长度 * sigma_size: 组成字符串的字符种类 * ch: 边 * value: 节点的值 * sz: Trie树的总节点个数 */ int原创 2016-09-26 17:49:23 · 233 阅读 · 0 评论 -
KMP 模板
测试题目:const int maxn = 100; char s[maxn],p[maxn]; int fail[maxn]; /* p为模式串 ** f为保存失配边的数组 ** */ void getFail(char* p,int* f){ int m = strlen(p); f[0] = 0; f[1] = 0; for(int i = 1;i < m;++i)原创 2016-09-26 17:52:59 · 217 阅读 · 0 评论 -
Manacher 模板
测试题目:const int maxn = 500; int dis[maxn]; char str1[maxn],str2[maxn];int get_dis(){ int len = strlen(str1); str2[0] = '$'; char* str_a = str2 + 1; for(int i = 0;i <= len;++i){ s原创 2016-09-26 18:07:35 · 261 阅读 · 0 评论 -
线段树 区间更新模板
测试题目:HDU 1166,/** 线段树模板 */ /** 以求区间和为例 */ #define lson rt << 1 , l ,mid #define rson rt << 1 | 1,mid + 1,r const int maxn = 50000 + 50; int v[maxn << 2],laze[maxn << 2]; int A[maxn];// 向下Push laze标记 vo原创 2016-10-08 10:16:22 · 250 阅读 · 0 评论 -
AC自动机 模板
测试题目:HDU 2222,const int maxn = 10000 * 50 + 50,sigma_size = 26;/** AC_AUTOMATION */ int ch[maxn][sigma_size],fail[maxn],tot; int value[maxn];/** 初始化 */ void Init(){ memset(ch[0],0,sizeof ch[0]);原创 2016-10-12 10:08:00 · 263 阅读 · 0 评论 -
各种模板总结
树链剖分模板const int maxn = 100000 + 5; //树中节点个数 //边集 struct Edge{ int v,pre,c; }Es[maxn * 2]; int head[maxn],TOT_EDGE; void INIT_EDGE(){ //边集初始化 memset(head,-1,sizeof head)原创 2016-09-26 13:10:19 · 468 阅读 · 0 评论