自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 【状压dp】

状压dp

2022-07-06 10:08:52 59 1

原创 【选课】CH5402

背包类树型dp学树型dp的时候遇到的板子题,但是这题的板子真的看了好久看不懂,最后一行行地模拟了下代码才理解逻辑, 真的非常妙对代码的一些理解写在备注里,可能还是没有非常到位,欢迎评论区指出错误...

2022-07-04 10:34:36 75

原创 【倍增+st表+lca】

lca

2022-06-30 10:58:02 175

原创 【矩阵快速幂+高斯消元法】

存两个板子

2022-06-30 10:16:43 137

原创 【Balanced Substring】cf-873B

#include<cstdio>#include<iostream>#include<cmath>#include<vector>#include<map>#include<queue>#include<set>#include<iomanip>#include<cstring>#include<algorithm>#include<cstdlib>...

2022-05-16 09:42:55 64

原创 【基础数论】

1、素数埃氏筛//素数埃氏筛int vis[MAXN];void primes(int n){ memset(vis, 0, sizeof(vis));//合数标记 for(int i=2;i<=n;i++){ if(vis[i])continue; cout<<i<<endl;//i是质数 for(int j=i;j<=n/i;j++){ vis[i*j]=1;

2022-05-13 16:07:59 72

原创 【bfs板子题】Dungeon Master poj-2251

一道广搜板子题,挂在这里方便复习#include<cstdio>#include<iostream>#include<cmath>#include<vector>#include<map>#include<queue>#include<set>#include<iomanip>#include<cstring>#include<algorithm>#in.

2022-05-12 09:29:18 86

原创 【hash+二分】Milk Patterns poj-3261

这题思路很顺,十来分钟就写完了一版,但是用了map然后tle了,看了大佬的题解学到了不用map的计数方式#include<iostream>#include<cstdio>#include<cmath>#include<map>#include<algorithm>#include<vector>#define moomoon ios::sync_with_stdio(false),cin.tie(0),...

2022-05-11 19:32:14 61

原创 【字符串hash】poj-1961

kmp还没琢磨明白,先用hash写写#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<map>#include<set>#include<algorithm>#include<queue>#define ull unsigned long long #define ll l...

2022-05-11 16:08:04 86

原创 【字符串hash板子】

核心代码#define ull unsigned long longull hash[MAXN];ull p[MAXN];signed main(){........... string a,ss; cin>>a; ss='#'+a; p[0]=1; ull len=a.length(); for(int i=1;i<=len;i++){ hash[i]=hash[i-1]*131+ss[i]-'a'+1;.

2022-05-11 15:38:36 114

原创 【字符串hash】poj2752

#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<map>#include<set>#include<algorithm>#include<queue>#define ull unsigned long long #define ll long long#define int lo...

2022-05-11 14:05:34 54

原创 【线段树+离散化】Mayor‘s posters

我又可以了哈哈哈哈,这题ac太开心了第一次写离散化的题,这个题的线段树写法对我来说也很新颖,学到了学到了#include<cstdio>#include<iostream>#include<cmath>#include<vector>#include<map>#include<queue>#include<set>#include<iomanip>#include<cst.

2022-05-11 11:07:28 68

原创 【线段树求最大子段和板子题】

这个的写法还是不是很熟练,要反复敲一敲这个题敲这个题#include<cstdio>#include<iostream>#include<cmath>#include<vector>#include<map>#include<queue>#include<set>#include<iomanip>#include<cstring>#include<algorithm&gt

2022-05-09 19:40:19 60

原创 【线段树带lazy操作的区间修改查询板子题】

如题,吾等废物如今刚开始补寒假的题。。。对寒假,五月份了,我还在寒假。。。没有看板子,是手打的线段树,私心觉得套板子写题真的非常没有意义所以不愿意这么做。。。不过每补一题对线段树的理解确实就深入很多,找到自己的节奏一点点来吧,不急不急#include<cstdio>#include<iostream>#include<cmath>#include<vector>#include<map>#include<queue

2022-05-09 15:05:06 46

原创 【线段树】。。

//你怎么一直在线段树????更新一下求区间最值的两种写法struct Tree { int l,r; ll maxn;//区间最大值 ll minn;//区间最小值};struct Tree tree[MAXN<<2];ll arr[MAXN];void build_tree(int i,int L,int R){ tree[i].l=L;tree[i].r=R; if(L==R){ //tree[i].num=arr[

2022-05-08 11:40:13 154

原创 【cf817E】Choosing The Commander

第一次写字典树题,记录一下#include<cstdio>#include<iostream>#include<cmath>#include<vector>#include<map>#include<algorithm>#define xf_dycm ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)#define int long int#define ll lo

2022-04-30 09:24:16 114

原创 【线段树板子(带lazy操作)】

const int maxn=2e5+10;//线段树板子//线段树用途:对序列进行维护,支持查询和修改指令int n;//总区间长度int arr[maxn];//要处理的目标数组struct Tree{ int sum;//该区间的元素和 int left;//当前区间左端点 int right;//当前区间右端点 int lazy;//表示该节点曾经被修改,但其子节点尚未被更新};struct Tree tree[maxn>>2];//存储.

2022-04-26 21:19:30 120 1

原创 【最小生成树】

const int maxn=2e5+10;//最小生成树://Kruskal算法://步骤//1.建立并查集并初始化//2.把所有边按边权从小到大排序//3.若st,ed(该条边起点和终点)属于一个集合,说明该两点已连通,则忽略改变继续下一条//4.否则合并该边起点和终点所在的集合,并把该边边权加入到总边权(tot)中//5.所有边扫描完成后,tot就是答案//时间复杂度O(mlogm)//一般够用除非是稠密图尤其是完全图可能要用Prim算法int fa[maxn];//并查集部.

2022-04-26 15:50:24 60

原创 【并查集板子】

//并查集板子//并查集的两种基础操作://1.get:查询一个元素属于哪个集合//2.merge:把两个集合合并成一个大的集合//并查集提高查询效率的两种操作://1.路径压缩:fa直接指向树根(实际操作中主要用这个)//2.按秩合并:小集合并入大集合//并查集用途:维护无向图节点连通性等int n;int fa[maxn];//保存父节点//并查集get操作及路径压缩int get(int x){//查找根节点 if(x==fa[x])return x; re.

2022-04-26 08:57:54 228

原创 【二分板子】

//整数二分查找:在单调递增序列a中查找>=x的数中最小的一个 while(l<r){ int mid=(l+r)>>1; if(a[mid]>=x)r=mid; else l=mid+1; } cout<<a[l]<<endl; //整数二分查找:在单调递增序列a中查找<=x的数中最大的一个 while(l<r){ int mi...

2022-04-20 12:17:58 90

原创 【记录路径的Dijkstra】

struct Edge { ll w,ed;};struct Edge edges;vector<Edge>node[maxn];priority_queue<pair<ll,ll>,vector<pair<ll,ll>>,greater<pair<ll,ll>>>ss;ll vis[maxn];ll dis[maxn];ll fa[maxn];void dijkstra(ll st){ //.

2022-04-10 08:58:22 177

原创 【图论最短路】

//floydint dis[maxn][maxn];int n;//n个点void floyd(){ for(int k=1;k<=n;k++){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]); } } }}..

2022-04-06 17:29:28 39

原创 【线段树板子(自用)】

const int maxn=3e3+10;//const int inf=1e9+10;int tree[maxn<<2];int arr[maxn];int lazy[maxn<<2];void build_tree(int node,int st,int ed){ if(st==ed){ tree[node]=arr[st]; return; } int mid=(st+ed)/2; build_...

2022-04-06 14:33:00 126

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除