模板
通信男神杨丽斌
我们不能,不能失去信仰
展开
-
01字典树模板——查询一个数组中两两异或的最大值
#include <bits/stdc++.h>#define int long longusing namespace std;const int maxn=1e5+10;int ch[maxn*32][2];//01字典树int val[maxn*32];//节点值int tot;void init(){ tot=1; memset(ch[0],0...原创 2020-02-07 23:40:10 · 315 阅读 · 0 评论 -
P4587 [FJOI2016]神秘数
题目大意一个可重复数字集合S的神秘数定义为最小的不能被S的子集的和表示的正整数。例如S={1,1,1,4,13}, 1 = 1 2 = 1+13 = 1+1+14 = 45 = 4+16 = 4+1+17 = 4+1+1+18无法表示为集合S的子集的和,故集合S的神秘数为8。现给定n个正整数a[1]..a[n],m个询问,每次询问给定一个区间l,r,求由a...原创 2019-12-09 21:22:48 · 318 阅读 · 0 评论 -
多项式相乘NTT模板题——Wannafly挑战赛20D.挑选队友
链接:https://ac.nowcoder.com/acm/contest/133/D来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述Applese打开了m个QQ群,向群友们发出了组队的邀请。作为网红选手,Applese得到了n位选手的反馈,每位选手只会在一个群...原创 2019-11-05 17:56:13 · 330 阅读 · 0 评论 -
【模板】严格次小生成树(LCA+倍增+kruskal)
模板题啥的就自己去洛谷上搜搜就好了直接上代码#include <bits/stdc++.h>using namespace std;const int MAXV = 1e5 + 5, MAXE = 6e5 + 5, DEP = 18;const int INF = 0x7f7f7f7f;typedef long long ll;typedef pair<i...原创 2019-11-05 17:05:38 · 317 阅读 · 0 评论 -
【模板】基环树模板
原文地址:https://blog.csdn.net/weixin_44824275/article/details/93719776原创 2019-08-16 19:47:21 · 250 阅读 · 0 评论 -
P5060.旅行——(分层图最短路)
题目链接:https://www.luogu.org/problem/P5060题目大意:给你一个无向图,你需要在图中找到一条从s到t的最短路,使它的长度对p取模的值为0思路:这原来是分层图,让我更好的理解分层图的含义。我们原来最常见的分层图就是,给你一个图,要你求最短路,你可以在图中选择k条道路将花费变为0,这就有点像dp的味道,状态转移为当前这条边,我们选择将他变为0,或者...原创 2019-08-16 19:40:42 · 451 阅读 · 0 评论 -
HDU6610——Game——(待修改莫队+Nim游戏)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6610题目大意:Alice和Bob在玩石子游戏,Alice选择一个区间【L,R】,确定玩游戏的区间,Bob再选择一个【l,r】,因为每次Alice可以先走,所以为了让游戏更加公平,Bob可以在每次游戏开始的时候先选择一个点pos,将pos与pos+1的石头堆的石头数量交换。现在给你很多...原创 2019-08-15 20:59:47 · 246 阅读 · 0 评论 -
【模板】仙人掌的基本概念和判定
本文参考并转自:https://blog.csdn.net/houserabbit/article/details/38874549https://blog.csdn.net/kksleric/article/details/7870398https://blog.csdn.net/creationaugust/article/details/48007069 什么是仙人掌? 仙...转载 2019-08-20 21:30:30 · 727 阅读 · 0 评论 -
牛客多校第四场I——string(后缀自动机+回文自动机)
链接:https://ac.nowcoder.com/acm/contest/884/I来源:牛客网时间限制:C/C++ 2秒,其他语言4秒空间限制:C/C++ 524288K,其他语言1048576K64bit IO Format: %lld题目描述We calla,ba,ba,bnon-equivalent if and only ifa≠ba \neq ba=...原创 2019-08-10 20:59:24 · 256 阅读 · 0 评论 -
网络流经典模型——最大权闭合子图
网络流经典模型——最大权闭合子图 什么是闭合子图 闭合子图的概念 : 通俗点说就是选出一个图的子图,使得子图中的所有点出度指向的点依旧在这个子图内,则说明此子图是闭合子图。如下图 最大权闭合子图 : 假设每个点具有点权值,在一个图的所有闭合子图中,点权之和最大的即是最大权闭合子图 最大权闭合子图与最小割的关系 这里我们要证明最大权闭合子图的权值之和与最小割的...原创 2019-08-21 22:03:50 · 722 阅读 · 0 评论 -
Codeforce 208E——Blood Cousins(dfs序+倍增寻找父节点+二分)
题目链接:https://codeforces.com/problemset/problem/208/E题目大意:给你一个有根树,树的根为0节点,给你m个询问,每次询问会询问,对于v这个节点的第p个祖先vp,有多少个节点的第p个祖先也是vp?如果是0那就输出0。思路:这题让我理解了如果求树上共享祖先的同一深度的节点数首先,我们必须得找到一个节点vp,它是v的第p个祖先,那么这个...原创 2019-08-17 00:01:16 · 248 阅读 · 0 评论 -
组队赛3.醉之见面会(莫队+树状数组)
醉之见面会(莫队+树状数组)题目描述:有很多个人需要发言,第i个人的发言时间为ai分钟由于时间有限,需要挑选第l个到第r个小朋友来发言,如何安排他们的发言顺序才能使得他们发言+等待的时间总和最小。比如,如果你安排2,3,5的小朋友一次发言,发言得总时间为2+(3+2)+(5+3+2)=17分钟现在有m个询问,每个询问为[l,r],你要对每个询问进行回答思路:如果需要区间...原创 2019-08-22 15:56:30 · 125 阅读 · 0 评论 -
组队赛4.师范大学的寝室(二分图最大权值匹配)
题目大意:师范大学计划改造江边学生公寓,改造后的公寓一共有 n 个寝室,每个寝室可以住 4个学生。 在第一年,第 i 间寝室的学生分别是 x1、x2 、x3 、x4 ,现在到了第二年, 学生们需要决定和谁住一起。 在第二年,你得到了 个表,比如( y1、y2 、y3 、y4 )表示这四个学生想要住在一 起。现在你需要决定每个学生住在哪个宿舍,以尽量减少更换宿舍的学生人数。 数据范围为n<...原创 2019-08-22 17:34:19 · 167 阅读 · 0 评论 -
HDU6664.Andy and Maze(dp+随机染色,color coding算法)
题目大意:你在一个n个点(1<=n<=1e4)和m条边(1<=m<=1e4)无向图中,每个点有一个宝石,你要收集k(2<=k<=6)个宝石才能逃脱,被访问的点不能再访问第二次,问你可能经过的最大权值是多少?思路:这种题好像专门有算法耶。。。还是随机算法。。。。Color coding 解决最小权重k-path问题不是很懂,又参考了大神博客:...原创 2019-08-27 15:33:07 · 691 阅读 · 0 评论 -
【回文树模板练习】UVaLive7041
题目大意给出两个仅包含小写字符的字符串 A 和 B ; 求:对于 A 中的每个回文子串,B 中和该子串相同的子串个数的总和。思路回文树基础题,我们对两个串分别构建两个回文树,因为回文树中的节点代表着回文串,所以只需要用dfs判断,在PAM1中有值的节点,在PAM2中是否有值,如果有,则说明B中也有这个子串,答案加上两者数量的乘积。所以最后我们需要从两棵树的两个起点0,0和1,1分别...原创 2019-09-11 12:22:27 · 195 阅读 · 0 评论 -
2017CCPC湘潭邀请赛B.Roads(全局最小割+最小生成树)
2017CCPC湘潭邀请赛B.Roads(全局最小割+最小生成树)题目大意:给你一个n点m边的图,现在要在图中删除一些边,使得最小生成树的值严格地增大(不连通则最小生成树的值视为INF),问你最少需要删除多少条边?思路:这个题让我了解了什么是全局最小割:无向图的全局最小割即为将图G(V)中的点划分为两个部分S,T使得任意一条从S到T的边的权值之和最小。也可以理解为将这个无向...原创 2019-10-05 20:47:56 · 235 阅读 · 0 评论 -
【模板】二维数组旋转
for (int i=0;i<n;i++){ for(int j=0;j<n;j++){ mp2[j][n-i-1]=mp1[i][j]; } } //逆时针90度 for (int i=0;i<n;i++){ for(int j=0;j<n;j++){ mp3[n-j-1][i]...原创 2019-08-10 15:25:28 · 194 阅读 · 0 评论 -
【模板】线性基求交——牛客多校第四场B
既然是模板,那么话不多说直接上代码#include<bits/stdc++.h>using namespace std;#define u32 unsigned int//#define u32 long longconst int maxn = 5e4 + 10;u32 a[maxn][32];//#define int long longstruct Liner...原创 2019-08-07 11:09:40 · 204 阅读 · 0 评论 -
杭电多校第二场——I Love Palindrome String(回文树+字符串hash)
http://acm.hdu.edu.cn/showproblem.php?pid=6599题目描述:给你一个串,求这个串有多少个本质不同的回文串,并且这些回文串的一半也是回文串。思路:这题让我系统了解了一下回文树的操作和功能求串S前缀0~i内本质不同回文串的个数(两个串长度不同或者长度相同且至少有一个字符不同便是本质不同) 求串S内每一个本质不同回文串出现的次数 求串S内...原创 2019-07-28 21:53:17 · 300 阅读 · 0 评论 -
(转载)线段树板子
转一波码农题的板子,等把那些跟复杂的什么什么树看懂了再补全原博客:https://blog.csdn.net/herbertpotter/article/details/771928511.线段树:点修改:// Dynamic RMQ// Rujia Liu// 输入格式:// n m 数组范围是a[1]~a[n],初始化为0。操作有m个// 1 p v 表示设a[p...转载 2018-10-06 21:00:14 · 191 阅读 · 0 评论 -
快速乘取模+快速幂取模
快速乘取模//快速乘法 + 取模 int qmul_mod(int a, int b, int mod) { int ans = 0; while(b) { if((b %= mod) & 1) ans += a %= mod; b >>= 1; a <<= 1; } retur...转载 2019-05-10 21:26:06 · 281 阅读 · 0 评论 -
快速读入fread
struct ios { inline char read(){ static const int IN_LEN=1<<18|1; static char buf[IN_LEN],*s,*t; return (s==t)&&(t=(s=buf)+fread(buf,1,IN_LEN,stdin)),s==t?-1...转载 2019-05-10 21:26:51 · 373 阅读 · 0 评论 -
(转载)C++中如何使用大整数__int128
转自:https://blog.csdn.net/shadandeajian/article/details/81843805据说,__int128只能在linux环境下才能编译成功,不过大部分OJ都是用linux为后台,所以掌握__int128还是很重要的__int128的输入输出模板#include <bits/stdc++.h>using namespace st...转载 2019-05-11 11:50:22 · 2126 阅读 · 0 评论 -
Treap实现名次树+模板+模板题
Treap的几大基本操作:Kth(k):寻找第k小的数 Rank(x):值x的“名次”,即比x小的节点个数+1 pre(x),寻找比x小的数中最大的数 next(x),寻找比x大的数中最小的数Treap可以说是一个劣质版的set<int>,实质上是一个树堆,对于值来说是一颗排序二叉树,对于优先级来说是一个优先堆。基本的作用就是寻找k小数,和k的,名次。刘汝佳大神版的...原创 2019-05-16 12:13:26 · 322 阅读 · 0 评论 -
【模板】最长上升子序列O(nlogn)
思路很清晰,扫的时候保存每一个长度最小的序列,更新的时候二分找就可以了。/* 最长上升子序列的O(nlogn)的算法*/#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <cmath>#inclu...原创 2019-06-06 19:06:22 · 163 阅读 · 0 评论 -
【转载】数位dp总结 之 从入门到模板
博客地址:https://blog.csdn.net/wust_zzwh/article/details/52100392(数位DP真的能给人整傻,还是DFS好使)转载 2019-06-08 20:38:04 · 208 阅读 · 0 评论 -
数论常用模板
#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <cmath>#include <queue>#include <vector>#include <set>#in...原创 2019-07-15 17:29:30 · 260 阅读 · 0 评论 -
后缀数组模板和最最最常用的思路
虽然不能理解,但好歹做个模板,方便以后copy23333#include <bits/stdc++.h>using namespace std;/* 1.判断一个串s是否为p的后缀 2.多模式串匹配 3.求原串的后缀的最长公共前缀\*/const int maxn=10000+10;char s[maxn];//原串int sa[maxn],t[...原创 2019-07-24 21:27:53 · 165 阅读 · 0 评论 -
【模板】主席树模板,查询区间第k大
#include<vector>#include<iostream>#include<algorithm>#include<vector>#include <queue>#include <cmath>#include <cstring>#include <cstdio>using n...原创 2019-07-30 10:28:12 · 103 阅读 · 0 评论 -
杭电多校第三场HDU6611——K Subsequence(固定费用流+Dijkstra优化)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6611题目描述给你一个序列,你要在序列中寻找k个非下降子序列,使得所有子序列的和最大。思路(比赛的时候不会Dijkstra优化,还好隔壁大佬手写栈+前向星强+快读强行卡过2333最大上升子序列一直是可以用最小费用最大流的思路解的,一个点a[i]与它之后所有大于它的点建边,然后把它自己...原创 2019-07-30 20:19:45 · 550 阅读 · 0 评论 -
后缀自动机模板(保存两个,第二个是杭电多校标称看到的)
SAM常解决的问题: 问题1.给定文本T,询问格式如下:给定字符串P,问P是否是T的子串。 问题2.给定字符串S,问它有多少不同的子串。(模板中的GetSubNum函数) 问题3.给定字符串S,求其所有不同子串的总长度。 问题4.给定字符串S,一系列询问——给出整数K_i,计算S的所有子串排序后的第K_i个。 问题5.给定字符串S,找到和它循环同构的字...原创 2019-07-25 20:23:05 · 148 阅读 · 0 评论 -
【转载】后缀自动机的经典模板用法
转载自:后缀自动机经典模板题集合(妈妈再也不用担心我不会套模板了!)转载 2019-07-26 10:28:45 · 136 阅读 · 0 评论 -
【模板】支配树,求有向图中两点路线的必经点的个数
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6604解析:https://blog.csdn.net/a710128/article/details/49913553支配数其实就是拓扑排序+LCA+dfs序+带权并查集目的就是求出有向图从一个点到另一个点必须经过的点的个数/* 支配树板子 用于求解从u到v有多少个必须经过的点 ...原创 2019-08-04 21:15:24 · 555 阅读 · 0 评论 -
【模板】马拉车算法求最长回文串
推荐大神解析:点我看大神解析#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <cmath>#include <iostream>#include <queue>#inclu...原创 2019-07-28 16:36:54 · 138 阅读 · 0 评论 -
网络流模板——Dinic+ISAP
思路和刘汝佳白书上的一样,收藏一波~ISAP:#include<iostream>#include<algorithm>#include<string>#include<sstream>#include<set>#include<vector>#include<stack>#include&原创 2018-10-06 20:48:08 · 248 阅读 · 0 评论