- 博客(48)
- 收藏
- 关注

原创 博客写题板子
题目序号Decription:题目描述Input输入要求Output输出要求Sample Input:输入样例Sample Output:输出样例Data Constraint数据要求Hint样例注释
2021-08-13 10:33:10
114

原创 浅谈线段树
浅谈线段树 ——因为是蒟蒻首先,先解决一个问题,线段树的结构以及工作原理。先放个图片看看。##这是我们梦中的线段树这是一个满二叉树,挺好看的 。再向下延伸的节点就代表[1,1],[2,2]~~~~[n,n]的单点那么我们为什么要用它,只因为他速度快且有树状数组所代替不了的功能,(但没有树状数组快有时)用法与区别线段树和树状数组的基本功能都是在某一满足结合律的操作(比如加法,乘法,最大值,最小值)下,O(logn)的时间复杂度内修改单个元素并且维护区间信息。不同的是,树状数组只能维护前缀“
2021-01-09 10:01:39
248

原创 工程
工程#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;int nn,m,kk;int f[201];bool r[201];//pair<int,int> road[201];int deg[201];int n[201],h[201],to[20001],cnt;pair<int,int>
2020-12-25 20:47:06
86

原创 简单二叉树
二叉树模板 敲敲luogu P4715#include<iostream>#include<cstdio>#include<cmath> #include<cstring>#include<algorithm>#include<map>using namespace std;int n;int m[201];int tree[201];map<int,int> f;void bulid(int no
2020-12-20 12:42:26
86
1

原创 拓扑--模板
拓扑排序 敲敲模板题目描述Description由于无敌的凡凡在2005年世界英俊帅气男总决选中胜出,Yali Company总经理Mr.Z心情好,决定给每位员工发奖金。公司决定以每个人本年在公司的贡献为标准来计算他们得到奖金的多少。 于是Mr.Z下令召开m方会谈。每位参加会谈的代表提出了自己的意见:“我认为员工a的奖金应该比b高!”Mr.Z决定要找出一种奖金方案,满足各位代表的意见,且同时使得总奖金数最少。每位员工奖金最少为100元。Input两个整数n,m,表示员工总数和代表数;以下m行
2020-12-19 16:14:47
112
1

原创 dijkstra
dijkstra模板 敲敲#include<iostream>#include<cstdio>#include<cstring>#define ll long longusing namespace std;ll n,t,s;bool w[71];ll r[71][71];ll tt;ll dis[71];ll ans;ll maxx;ll e;int main(){ scanf("%d%d%d",&n,&t,&
2020-12-19 10:57:57
90
1
原创 有线电视网(树状背包)
某收费有线电视网计划转播一场重要的足球比赛。他们的转播网和用户终端构成一棵树状结构,这棵树的根结点位于足球比赛的现场,树叶为各个用户终端,其他中转站为该树的内部节点。从转播站到转播站以及从转播站到所有用户终端的信号传输费用都是已知的,一场转播的总费用等于传输信号的费用总和。现在每个用户都准备了一笔费用想观看这场精彩的足球比赛,有线电视网有权决定给哪些用户提供信号而不给哪些用户提供信号。写一个程序找出一个方案使得有线电视网在不亏本的情况下使观看转播的用户尽可能多。
2025-02-22 09:41:57
890
原创 P10447 最短 Hamilton 路径
给定一张n个点的带权无向图,点从0∼n−1标号,求起点0到终点n−1的最短 Hamilton 路径。Hamilton 路径的定义是从0到n−1不重不漏地经过每个点恰好一次。
2024-12-09 16:50:03
607
原创 2024/11/3 随笔笔记
又到暑假了,住在城市 A 的 Car 想和朋友一起去城市旅游。她知道每个城市都有4个飞机场,分别位于一个矩形的4个顶点上,同一个城市中两个机场之间有一条笔直的高速铁路,第i个城市中高速铁路的单位里程价格为Ti,任意两个不同城市的机场之间均有航线,所有航线单位里程的价格均为t。:图中并没有标出所有的铁路与航线。那么 Car 应如何安排到城市 B 的路线才能尽可能的节省花费呢?她发现这并不是一个简单的问题,于是她来向你请教。
2024-11-04 14:09:46
936
原创 P11231 [CSP-S 2024] 决斗(民间数据)2024/10.30笔记
今天是小 Q 的生日,他得到了n张卡牌作为礼物。这些卡牌属于火爆的“决斗怪兽”,其中,第i张卡代表一只攻击力为ri,防御力也为ri的怪兽。一场游戏分为若干回合。每回合,小 Q 会选择某只怪兽i以及怪兽jij,并让怪兽i向怪兽j发起攻击。此时,若怪兽i的攻击力小于等于怪兽j的防御力,则无事发生;否则,怪兽j的防御被打破,怪兽j退出游戏不再参与到剩下的游戏中。一只怪兽在整场游戏中只能发起一次攻击。当未退出游戏的怪兽都已发起过攻击时,游戏结束。
2024-10-30 21:36:50
839
原创 关于树链剖分
树链剖分模板题顾名思义,即是把树的形态用线性链表表示出来。那么首先就是要造个树。ll siz[N],dep[N],son[N],fa[N];//son是以x为祖先的重儿子坐标 void build_tree(int now){ siz[now]=1;//初始化树的大小 for(int i=he[now];i;i=nxt[i]) { int tar=to[i]; if(tar==fa[now]) continue; fa[tar]=now,dep[tar]=dep[now]+1;
2022-02-19 08:40:02
161
原创 泰勒级数理解
关于泰勒级数的一些理解对于泰勒级数,其实大部分时候都不是很了解它其中的含义,怎么来的,其实大部分人都不是很清楚。(包括作者 )泰勒级数最多应用其实在计算机科学上,因为对于很多函数,我们不可能直接带值求解,比如f(x)=exf(x)=e^xf(x)=ex,比如我带个2进去,你最多只能求得它的近似值,而且计算量还很大,而且还不是很精确,那么有人就想了,能不能用一个近似的函数,或者换句话说尽可能的去逼近这个函数的一个带有x的多项式呢,因为这样的话,比如说一个多项式f(x)=x+x2+x3f(x)=x+x^2+
2022-01-31 18:27:35
3241
原创 微积分引子
微积分只是想写一写加深印象而已,作者是个蒟蒻。(借鉴了很多其他题解的解释)看了一些大佬们关于微积分的讲解,逐步摸清了微积分的轮廓。对于微积分最关键也是源头来源于不规则几何形状的求解。譬如举个例子:这个一次函数和二次函数之间围成的矩形怎么求解?(思考一下)在这里我们就需要用到极限思想去想方设法去用规则的图形逼近这个不规则的曲面的面积,我们可以用三角形。请注意并不是可以将三角形随便乱摆,我们要尽可能要用三角形覆盖掉尽可能多的面积,也就是初中所学的关于此类问题三角形的最大值,其实作者做的这个图
2022-01-31 09:32:51
391
原创 ybtoj 矩阵乘法 行为方案
ybtoj 矩阵乘法 行为方案题面描述我们可以从题目中得到一些类似于dp的一些好东西。对于题目中的三种要求我们可以进行如下转化,对于自爆这一种情况我们可以看作是走到了第零号城市,也就是零号节点,如果对与站在原地不动,那么我们就可以默认为它走了一次自环,,那么如果设f[i][j][k]为从i节点走到j节点用了k步数的方案数,那么我们可以得到一条状态转移方程f[i][j][k]=∑f[i][p][k−1]∗f[p][j][1]f[i][j][k]=\sum f[i][p][k-1]*f[p][j][1]
2021-12-24 20:26:18
179
原创 初赛---主定理 只是背一下。。-蒟蒻
假设有一个函数T(n)=aT(n/b)+f(n)T(n)=aT(n/b)+f(n)T(n)=aT(n/b)+f(n)(f(n)f(n)f(n)大概率都是一个常量)设reasonreasonreason为此函数的时间复杂度那么如果 f(n)<nlogbaf(n)<nlog_baf(n)<nlogba则 reason=O(nlogba)reason=O(n^{log_ba})reason=O(nlogba)如果 f(n)=nlogbaf(n)=nlog_baf(n)=nlogb
2021-09-04 16:10:34
121
原创 Day 11别问我中间发生了啥。
水到炸的数论 ? 莫队+树状数组 矩阵快速幂ABCADecription:给出 n个数字的一个序列A,你可以将他们分为若干组,每一组的权值是里面数字的异或和,求使得所有组权值和最小。Input第一行给出一个n接下来一行给出序列AOutput输出一行包括一个整数表示最小的权值和Sample Input:51 2 6 4 3Sample Output:2Data Constraint思路:异或来异或去,其实就是不进位的加法,那么最优的解法实际上是把所有异或起来
2021-08-25 09:08:11
238
原创 Splay
#include<iostream>#include<cstdio>#define N 100000#define push_up(x) t[x].size=t[t[x].son[0]].size+t[t[x].son[1]].size+1using namespace std;int n,m,l,r,root,tot;struct node{ int size,son[2],mark,val,pre; void init(int x,int fa) {
2021-08-21 11:53:44
110
原创 DAY 6
数论 模拟 数论 数论?AADecription:C(n,m)=P(n,m)m!=n!m!(n−m)!C(n,m)=\frac{P(n,m)}{m!}=\frac{n!}{m!(n-m)!}C(n,m)=m!P(n,m)=m!(n−m)!n!,判断其结果奇偶性InputOutputSample Input:27 38 2Sample Output:10思路求啥找啥,就把阶乘中的2的个数预处理出来,之后看一下如果分子的2的数量大于分母那么其一定为偶数,反之则
2021-08-20 11:06:24
152
原创 Treap(AVL)板子
神仙东西高级的呀,100多行,调了我亿点点时间。哦也,过了直接放代码,代码有注释。#include<iostream>#include<cstdio>#include<cstdlib>#define N 100000#define INF 1000000000 using namespace std;int n,opt,x;int son[N+1][2],val[N+1],data[N+1],size[N+1],tot,cnt[N+1],root;i
2021-08-18 21:18:59
244
1
原创 Day 5
题目序号Decription:Input输入要求Output输出要求Sample Input:56 67 78 89 910 1Sample Output:6666667777777888888881755646112866758思路:很显然从数据规模和这些诡异的数字轻松得知此题是数论,那么怎么做呢,首先我们要输出的结果是kkkkkk这个数,那么我们可以把它化成k*(10010^0100+10110^1101+…+10n10^n10n),那么很显然 赛
2021-08-17 07:57:15
230
原创 Count on a tree
树上主席树练习luogu P2633#include<iostream>#include<cstdio>#include<algorithm>#define N 100000#define NlogN 2500000 using namespace std;int n,m,a[N+1],b[N+1],tree[N+1],l[NlogN],r[NlogN],sum[NlogN],deep[N+1],f[N+1][31],tot,len,mid,u,v,k,l
2021-08-15 21:29:44
93
原创 主席树板子
主席树------以线段树为基础的线段树板子题如果我们要离线查询一个区间内的第k小或第k大的值,那么我们可以用主席树,保证复杂度在O(mlogn)内,对于板子题来讲是刚刚好的,那么我们先上代码。#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<cmath>#define N 4000000#define M 200000
2021-08-13 19:37:34
206
原创 打莫队板子
莫队算法有点像分块,但是他充分的利用了排序将时间复杂度优化到了极致,显然在luogu 19721e6下肯定试过不了的,主要是chen_zhe不让过,……原本1e5是可以的,所以优化到最好的顶多拿60分。#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>#define N 1000000using namespace std;int n,m,a[N+1],q,p
2021-08-13 10:25:42
124
原创 2021暑假集训Day 4
数论 背包 分块 数论? ABCD 后续更新ADecription:若数列A存在位置k,满足①i<k,ai<ai+1②i>=k,ai>ai+1则称该数列为单峰数列给出正整数n,求全排列n中存在多少个单峰数列Input给出1个正整数nOutput单峰数列个数(对10^9+7取模)Sample Input:3Sample Output:4Data Constraint20%:n ≤\leq≤ 1050%:n ≤\leq≤ 10^
2021-08-12 22:07:43
271
原创 2021暑假集训 Day 3
暴力出奇迹的一天ABCDADecription:有n个信号,第i个信号强度为bi。总体强度为各操作信号的强度之和。为保证信号强度需要删除某些信号。有m个操作人员,第i个人只会删除编号在L[i]和R[i]之间的信号,每删除一个信号,花费C[i]格能量。飞船一共有 k格能量,问在队友删除完信号后,总体强度最大是多少。Input第一行给出2个正整数n,m,k第二行给出n个信号的强度bi接下来m行,每行用L,R,C来描述一个操作人员Output总体最大强度Sample Inp
2021-08-11 20:42:35
488
2
原创 2021暑假集训 Day 2
回顾:就不知道今天为什么那么想尝试富文本编辑器了……A今天的第一题非常的无语呵,想了90min?而且差一个longlong就A了,别吧,心态炸裂。Decription:n个小球排成一列,第i个小球颜色为ai,定义小球i与j的距离为|(i-j)*(ai-aj)|,求所有小球间距离之和,i与j 和 j与i 不必重复计算。Input:第一行一个n第二行给出a1,a2,...,an-1,anOutput按照题目要求作答...
2021-08-10 19:58:27
208
原创 2021暑假集训 Day 1
学校刷题Day 1 -- 2021-8-9ABDADecription:定义操作a(X)B=((a&b)+a(a|b))>>1给出n个数ai每次用操作合并任意相邻ai求进行n-1次操作以后可能得到的最终结果所有结果从小到大输出Input第一行一个n第二行给出a1,a2,…,an-1,anOutput按题目要求作答Sample Input:41 4 3 2Sample Output:1 2Data Constraint30% n&
2021-08-09 21:03:57
277
原创 关于φ的一些
关于phi(φ\varphiφ)的打了这么久的比赛,好不容易有空的时间,就出来多写写数论,怎么说呢?其实应该是改不动题才空出来的时间。对于一个数NNN,好的,先可以分解一下质因数,比如说这种形式N=P1c1+P2c2+P3c3+...+PncnN=P_1^c1+P_2^c2+P_3^c3+...+Pn^cnN=P1c1+P2c2+P3c3+...+Pncn简略点表示N=∏i=1φ(N)PiciN=\prod_{i=1}^{\varphi (N)}P_i^ciN=i=1∏φ(N)Pici
2021-07-20 20:27:26
396
原创 网络流板子
网络流初步理解由于今天没比赛,把该改的改了刷了一下网络流的板子,然而费用流还在理解中,这波就是看了一下FF算法和Dinic。然而很gank呀,调了半天竟然是,邻接表的问题,诶我吐了呀。#include <iostream>#include<cstdio>#include<cstring>#define rep(i,n) for(int i=1;i<=n;i++)#define ll long long#define E 10000#define
2021-07-20 18:44:59
158
原创 数学期望入门篇
数学期望例题单选错位大家可以先看完题目描述。我们可以先从数学期望的定义下手,假设有一个随机数x,它的取值范围是一到十,那么对于一个可能xi,它的期望是xi*10,也就是他本身的值乘概率,1~10的期望加起来就是x的期望。那么我们可以献上代码,再解释#include <iostream>#include <cstdio>#include <cstring>#include <queue>#define N 10000011#define ll
2021-07-11 21:16:16
519
原创 ybtoj 二叉堆
二叉堆学习总结怎么说呢,二叉堆这个东西就是一个维护区间最大值和最小值的一个东西,可以被其他东西所部分替代,但是还是得讲一下二叉堆运作的原理,首先先上put函数代码。void put(int x) // min{ heap[++len] = x; int son = len; while (son > 1) { int fa = son / 2; if (heap[son] >= heap[fa]) return; s
2021-07-09 08:50:18
199
原创 ybtoj 单词频率
#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#define N 1100001using namespace std;int n,trie[N][26],tot=1,s[N][2],las[201],nxt[N],que[N];char w[N];void ins(int num){ int r=1,x,len=strlen(w+1); for(int
2021-07-06 10:40:46
142
原创 AC自动机学习笔记
今天刚刚学习了AC自动机,刷了个模板题。前置知识:trie树和KMP。其实说实话吧,KMP在AC自动机里的运用其实就是失配指针。失配指针其实就是在trie树上寻找最长的后缀,采用bfs的顺序是为了保证前后顺序的不变,当你在当前节点的时候知道你的上一层节点的失配指针的指向,在匹配中就可以节约大量时间来进行多模式串的匹配。下附代码#include<iostream>#include<cstdio>#include<cmath>#include<cstri
2021-07-05 11:32:26
109
原创 KMP算法基础入门笔记
KMP学习笔记。主要还是自己的领悟嘿嘿先看主要代码:#include<iostream>#include<cstdio>#include<cstring>using namespace std;char s[1000010],ss[11000001]; int p[1100001],ls,lss,ans;int main(){ cin>>s+1>>ss+1; ls=strlen(s+1),lss=strlen(ss+
2021-07-02 15:45:44
127
原创 2016东莞市特长生考试
前传,本人真的是lalala,自己的代码竟然在同一个栏里编辑,保存的时候重新从硬盘读取,结果就,呵呵。不过后面改了一下,大概是220pts,感觉自己还是很la。
2021-03-26 19:42:00
193
原创 luoguP398 仓鼠找sugar
luoguP398 仓鼠找sugar传送门在此题目描述:小仓鼠的和他的基(mei)友(zi)sugar住在地下洞穴中,每个节点的编号为1~n。地下洞穴是一个树形结构。这一天小仓鼠打算从从他的卧室(a)到餐厅(b),而他的基友同时要从他的卧室(c)到图书馆(d)。他们都会走最短路径。现在小仓鼠希望知道,有没有可能在某个地方,可以碰到他的基友?小仓鼠那么弱,还要天天被zzq大爷虐,请你快来救救他吧!输入格式第一行两个正整数n和q,表示这棵树节点的个数和询问的个数。接下来n-1行,每行两个正整数u和
2021-01-25 21:34:05
147
原创 ST表基础解释
ST表简介——处理RMQ问题的利器前言:什么是RMQ,就是在线性表内处理出一段区间的最大值和最小值问题。如果你利用普通的for查找的话,时间复杂度为O(l-r+1),但是如果你用ST表预处理一下,时间复杂度为O(nlogn)加上每次查询的复杂度为O(1)是不是快捷很多。比如一个线性表长度为1e5,查询次数为1e6,那么毫无疑问,朴素算法直接爆炸,但是ST表就不会,而且到了后面的查询会十分迅速。开始介绍算法原理,如果我们要存一个长度为n的线性表,并构建ST表的的话,我们要建一个st[n][ 
2021-01-23 11:45:53
735
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人