
蒟蒻的模板
文章平均质量分 56
ojzha_gcx
蒟蒻一只
展开
-
Pollard-Rho算法模板
复杂度期望O(n14)O(n^{ \frac{1}{4} })O(n41)#include<cstdlib>#include<cstdio>#include<ctime>#define li inline#define re register#define ll __int128#define abs(a) ((a)>0?(a):-(a))namespace Miller_Rabin{ const int Pcnt=12; const ll原创 2021-10-22 15:11:21 · 217 阅读 · 0 评论 -
常用数论函数线性筛模板
//线性筛欧拉函数phi[1]=1;for(int i=2;i<=n;i++){ if(!vis[i]) { phi[i]=i-1; pr[++pc]=i; } for(int j=1;j<=pc&&i*pr[j]<=n;j++) { vis[i*pr[j]]=1; if(i%pr[j]) { phi[i*pr[j]]=phi原创 2021-10-22 15:09:23 · 127 阅读 · 0 评论 -
扫描线(模板向)
关于计算几何中的扫描线推荐这篇大佬的博客和这篇此篇博客仅作为个人的整理扫描线一般适用于求几个矩形(有重叠)面积和或者周长和。我们的办法类似这张图PS:空间要开的足够大,我们这里的线段树跟普通线段是有差异,空间最好开8倍 。求面积和模板(带离散化的版本)://本模板是从坐往右扫的,从下往上扫同理#define ls (rt<<1)#define rs (rt<<1|1)LL cover[N*8];//存放i节点对应区间覆盖情况的值LL n;LL len原创 2021-08-08 11:43:08 · 292 阅读 · 0 评论 -
分块/莫队(模板&&习题)
分块是一种思想,把一个整体划分为若干个小块,对整块整体处理,零散块单独处理。本文主要介绍块状数组——利用分块思想处理区间问题的一种数据结构。块状数组把一个长度为nnn 的数组划分为aaa 块,每块长度为 n/an/an/a 。对于一次区间操作,对区间內部的整块进行整体的操作,对区间边缘的零散块单独暴力处理。(所以分块被称为“优雅的暴力”)这里,块数既不能太少也不能太多。如果太少,区间中整块的数量会很少,我们要花费大量时间处理零散块;如果太多,又会让块的长度太短,失去整体处理的意义。一般来说,我们取块数为原创 2021-08-04 19:35:24 · 229 阅读 · 0 评论 -
XOR-MST(模板)&& 相关题
例题题意: 给你一个 nnn 个节点的完全图,第 iii 个点的权值为 aia_iai ,两点的之间边权为这两个点权值的异或值,求最小生成树(MST)的权值。参考dalao博客步骤:对各个点权值进行排序跑dfs,从高位到低位每次dfs找到这个区间[l,r][l,r][l,r]的当前二进制位(深度表示)是1的那个数,然后继续二分。对trie树上每一个可能是LCA的点,合并左右两颗子树(启发式合并),对一颗子树内的叶子点值一个子树建trie,查找trie树上异或另一颗子树内的叶子点值最小的结果原创 2021-07-30 19:05:47 · 168 阅读 · 0 评论 -
数位dp(模板)
一篇不错的博客一般数位dp问题是这样的:求出在给定区间 [A,B] 内,符合条件 f(i) 的数 i 的个数。条件 f(i) 一般与数的大小无关,而与数的组成有关例如:给出一个数n,1~n有多少数包含49,测试数据1<=T<=10000,1<=n<=2^63-1#include<bits/stdc++.h>using namespace std;const int Max = 99999;const int Min = 0;const int inf原创 2021-02-24 17:33:38 · 135 阅读 · 0 评论 -
一点初等数论(扩展欧几里得,求逆元的三种方法)
以前遇到数论题直接懵逼,今天开始好好搞搞基础的数论知识。 一下内容证明我可能会省略,毕竟我太弱了…. . . . . .1.模运算几个常用的定律:( a + b ) mod p = ( a mod p + b mod p ) mod p( a * b ) mod p = ( (a mod p) * (b mod p) ) mod pc * ( a mod p )...原创 2018-02-06 15:04:52 · 15178 阅读 · 3 评论 -
vector常用使用方法
今天晚上我终于认真学习了一遍vector,即动态数组 写下这篇东西,方便日后翻阅。. . 百度的vector定义:动态数组是指在声明时没有确定数组大小的数组,即忽略圆括号中的下标;当要用它时,可随时用ReDim语句重新指出数组的大小。使用动态数组的优点是可以根据用户需要,有效利用存储空间。#include#include//头文件 using namespace std;v原创 2018-02-05 21:48:03 · 277 阅读 · 0 评论 -
矩阵快速幂(模板)
例题:洛谷P3390 【模板】矩阵快速幂传送门:https://www.luogu.org/problemnew/show/P3390题解:直接矩阵乘法即可。 矩阵的快速幂我们可以类比一下一个数的快速幂求法;#include#include#include#define LL long longusing namespace std;const int MOD=100000原创 2018-02-04 08:59:01 · 226 阅读 · 0 评论 -
快速幂模板
一道codevs的模板题: codevs3500 题目:快速幂入门 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 白银 Silver 题解 查看运行结果 题目描述 Description 输入3个数a,b,c,求a^b mod c=?输入描述 Input Description 三个数a,b,c输出描述 Output Description 一个数,原创 2017-12-18 18:13:20 · 205 阅读 · 0 评论 -
单调栈(模板)
模板题目:poj 3250 Bad Hair Day Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 19813 Accepted: 6788 DescriptionSome of Farmer John’s N cows (1 ≤ N ≤ 80,000) are having a bad hair原创 2017-10-02 11:32:23 · 1816 阅读 · 0 评论 -
树状数组(模板)
照例先来一道模板题poj题号:2352 Stars Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 49475 Accepted: 21340 DescriptionAstronomers often examine star maps where stars are represented by原创 2017-10-03 01:11:15 · 241 阅读 · 0 评论 -
线段树(简单模板)
#define LL long longstruct hh{ int l,r,ls,rs;//l,r为边界,ls,rs为左右儿子的编号 LL date;//权值 }t[800000];LL n,m,num=0,x,y,v,pd,a[200010],add[200010];//add为标记要增大的值的数组 void pushup(int i)//重新求权值 { t原创 2017-10-02 19:08:40 · 362 阅读 · 0 评论 -
线性筛选素数(模板)
今天hz大神回来给我们上课,首先讲了线性筛选素数,就先做个记录吧 以一道模板题做为例子洛谷 P3383 【模板】线性筛素数 题目描述如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)输入输出格式输入格式: 第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。接下来M行每行包含一个不小于1且不大于N的整数,即询问概数是否为质数。输出格式: 输出包含M原创 2017-10-01 19:46:26 · 718 阅读 · 0 评论