
模板
maze_illusion
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
笛卡尔树模板
int n,l[maxn],r[maxn],vis[maxn],stk[maxn]; pair<int,int>a[maxn]; void build() { int top=0; for ( int i=1 ; i<=n ; i++ ) l[i]=0,r[i]=0,vis[i]=0; for ( int i=1 ; i<=n ; ...原创 2018-07-24 19:31:36 · 373 阅读 · 0 评论 -
黑科技开根号
int my_sqrt( float x ) { if ( x==0 ) return 0; float result = x; float xhalf = 0.5f*result; int i = *(int*)&result; i = 0x5f375a86-(i>>1); result = *(float*)&...原创 2018-09-28 13:09:54 · 615 阅读 · 0 评论 -
COGS 2639 多维偏序 分块+bitset解决偏序问题
编程思路: 以bitset的01表示来代替此维有多少符合偏序,最后取k维偏序的交集即是答案 使用分块加速原理,可以根据此维数字大小排名来分块预处理每一小块,查询时使用二分得到快速定位属于的块号,最后再暴力计算剩余的<=sqrt(n)个数字 模板代码: #include<bits/stdc++.h> using namespace std; typedef long lo...原创 2018-09-15 10:08:54 · 747 阅读 · 0 评论 -
cdq分治(cdq分治套cdq分治套cdq分治)
COGS 2580(cdq分治求五维偏序) 第一维:排序 第二维:分治后标号处理 第三维:分治后标号处理 第四维:分治 第五维:树状数组 模板代码: #include<map> #include<set> #include<ctime> #include<stack> #include<cmath> #include<...原创 2018-09-14 14:22:14 · 630 阅读 · 0 评论 -
莫队算法
简单版本:将区间分成sqrt(n)块并将询问按照左端点的所在块序号排序,左端点块序号一样则按照右端点排序 LL Gcd( LL a , LL b ){ return b==0?a:Gcd( b , a%b ); } struct Query { int L,R,id; }Q[maxm]; struct Ans { LL a,b; void reduce() { ...原创 2018-09-12 20:14:19 · 237 阅读 · 0 评论 -
DLX重复覆盖
const int maxn = 15*15+10; const int maxm = 15*15+10; const int maxnode = maxn*maxm; const int inf = 0x3f3f3f3f; struct DLX { int n,m,sizes,H[maxn],S[maxm],ansd; int U[maxnode],D[maxnode],L[...原创 2018-09-12 12:25:20 · 415 阅读 · 0 评论 -
DLX精确覆盖
DLX精确覆盖:对于给定的01矩阵,是否能找到一个行的集合,使得集合中每一列都恰好包含一个1 数独转换为DLX精确覆盖求解: 每个格子都要填入数字---001到081列,表示数独中9*9=81个格子是否填入数字。如果是,则选取的行在该列上为1。 每一行都要有1~9填入---082到162列,每9列就代表数独中的一行,如果该行有某个数字,则其对应的列上为1 每一列都要有1~9填入---163到243...原创 2018-09-12 11:15:02 · 422 阅读 · 0 评论 -
分块
int block;//每块大小 int num;//块数 int l[maxn];//第i块的左边界 int r[maxn];//第i块的右边界 int belong[maxn];//第i个位置属于那块 void Build() { block = sqrt(n); num = n/block; if ( n%block ) num++; for ( int i=1 ; i&l...原创 2018-09-12 09:59:53 · 234 阅读 · 0 评论 -
C++大整数模板
#define MAXN 9999 #define DLEN 4 class Bignum { private: int a[10010],len; public: Bignum(){ len=1; memset( a , 0 , sizeof(a) ); } Bignum( const int ); Bignum( const char* ); Bign...原创 2018-08-23 10:42:51 · 447 阅读 · 0 评论 -
快速读入模板
整数快读: inline bool scan_d( int &num ) { char in; bool IsN = false; if ( in==EOF ) return false; while ( in!='-'&&(in<'0'||in>'9') ) in = getchar(); ...原创 2018-08-15 11:04:51 · 427 阅读 · 0 评论 -
FHQ_Treap平衡树模板
struct FHQ_Treap { struct fhq_treap { int l,r; int v,rnd; int sizes; }ftr[maxn]; int sizes,root,tmp; void Init() { sizes = root = 0; } ...原创 2018-07-31 16:49:29 · 506 阅读 · 0 评论 -
Treap平衡树模板
struct Treap { struct node { int l,r; int v,rnd; int sizes,w; }tr[maxn]; int sizes,root,ans; void Init() { sizes = root = 0; } int Rand...原创 2018-07-31 13:27:26 · 199 阅读 · 0 评论 -
JAVA牛顿迭代法求大数开方
import java.io.*; import java.math.*; import java.util.*; public class Main { public static void main( String[] args ) throws Exception { Scanner cin = new Scanner(System.in); String nStr = ...原创 2018-09-28 16:39:15 · 424 阅读 · 0 评论