07 2024 档案

摘要:1.简介: 卡特兰数是组合数学中一个常出现于各种计数问题中的数列。 十以内的卡特兰数,方便打表找规律,稍微记记。 1 2 5 14 42 132 429 1430 4862 16796 2.catalan递推式子 (1) 点击查看代码 #include<bits/stdc++.h> using na 阅读全文
posted @ 2024-07-30 20:47 zhengchenxi 阅读(77) 评论(0) 推荐(3) 编辑
摘要:为了方便理解,咱们可以先看一组实例。 今天huge要买水果 lbtl说: 1.我不吃梨(¬a) 2.我吃苹果(b) 3.我吃草莓(c) lxyt说: 1.我吃梨(a) 2.我吃苹果(b) 3.我不吃草莓(¬c) CTH说: 1.我不吃梨(¬a) 2.我 阅读全文
posted @ 2024-07-30 17:50 zhengchenxi 阅读(38) 评论(1) 推荐(4) 编辑
摘要:我们可以先观察特殊数据,一个是v相同,一个是鱼数为3,我们先来考虑v相同的时候,很明显,当v相同时,与答案相关的只有它的初始位置。很简单能够解决,但它也引发我们继续思考,我们根据数据范围大致可以确定要枚举区间位置或者每只鱼,那当我们要枚举鱼的时候,我们就可以把所选的鱼定为参照系,以区间a为左右端点来 阅读全文
posted @ 2024-07-30 15:00 zhengchenxi 阅读(91) 评论(3) 推荐(2) 编辑
摘要:这道题赛时是想出来了,但是线段树出锅了,只得了20分。 首先根据题目我们可以得出,一个序列要是为T的子串,就必须满足以下三个条件。 1.该序列单调不降。如 ba肯定是不合法的。 2.该序列除去开头和结尾的字母,其他字母的数量必须为整个序列全部的该字母数量。 如 abbcba 选择 abbc a和c不 阅读全文
posted @ 2024-07-28 07:11 zhengchenxi 阅读(23) 评论(0) 推荐(2) 编辑
摘要:比较好理解,相当于重建了一个二叉树,所有的父亲节点都为原来图中的边,儿子节点为点。 重构树就可以利用lca求两点间的最大(或者最小)边权以及一些树上操作。 较为简单的应用,需要用线段树来维护信息。 点击查看代码 #include<bits/stdc++.h> using namespace std; 阅读全文
posted @ 2024-07-26 19:37 zhengchenxi 阅读(37) 评论(4) 推荐(2) 编辑
摘要:莫比乌斯反演套路 以这题为例(比较懒,直接粘了 这是洛谷题解区比较好的分析, 这是佬的博客,可以去看看http://www.cnblogs.com/peng-ym/ 阅读全文
posted @ 2024-07-24 16:17 zhengchenxi 阅读(24) 评论(0) 推荐(2) 编辑
摘要:sg函数的一个简单应用,把树拆成很多条以根节点为起点的链,就可以等效于nim问题。 我们把叶子节点的sg赋值为0,一个节点的sg值为它儿子节点的sg值+1的异或和。 最后判断根节点的sg值是否为0,再判断是先手必胜还是后手。 点击查看代码 #include<bits/stdc++.h> using 阅读全文
posted @ 2024-07-23 10:27 zhengchenxi 阅读(33) 评论(0) 推荐(1) 编辑
摘要:点击查看代码 long long H(int n) { long long res=0; int l=1,r; while(l<=n) { r=n/(n/l); res+=1ll*(r-l+1)*(n/l); l=r+1; } return res; } 阅读全文
posted @ 2024-07-22 09:32 zhengchenxi 阅读(14) 评论(0) 推荐(1) 编辑
摘要:![](https://img2024.cnblogs.com/blog/3374350/202407/3374350-20240721191023344-1031245376.png) 阅读全文
posted @ 2024-07-21 19:10 zhengchenxi 阅读(29) 评论(0) 推荐(1) 编辑
摘要:T1 看到这时限和内存,连一个数组都开不下,更别说离散化了,考试的时候我用了一个栈来模拟,相同留、进,不同退,可以说是很接近正解了,但还是没继续往下想,也是爆零了。 正解的思路很简单,这里引出一个概念,摩尔投票法,适用于超过半数(不能等于)的众数,可以在常数的空间下、O(n)的时间复杂度下查 阅读全文
posted @ 2024-07-20 12:09 zhengchenxi 阅读(22) 评论(0) 推荐(1) 编辑
摘要:1.floyed多源最短路 稳定的O(n3)预处理,O(1)查询。 加深理解:floyed的最外层枚举k时,k是任意枚举的,也就是说k可以用来维护其他操作,如赋给每个点一个点权,sort一下,再跑floyed,此时的k就可以作为走过路径的点权最大值,可与最短路一起维护。 点击查看代 阅读全文
posted @ 2024-07-13 19:45 zhengchenxi 阅读(23) 评论(0) 推荐(1) 编辑
摘要:《锦瑟》 唐·李商隐 锦瑟无端五十弦,一弦一柱思华年。 庄生晓梦迷蝴蝶,望帝春心托杜鹃。 沧海月明珠有泪,蓝田日暖玉生烟。 此情可待成追忆,只是当时已惘然。 《浣溪沙》 清·纳兰性德 谁念西风独自凉,萧萧黄叶闭疏窗,沉思往事立残阳。 被酒莫惊春睡重,赌书消得泼茶香,当时只道是寻常。 《唐多令》 宋· 阅读全文
posted @ 2024-07-13 19:17 zhengchenxi 阅读(88) 评论(2) 推荐(6) 编辑
摘要:T1 很明显的最短路floyed算法,但是这个最大的点权却不是很好维护,但我们可以想到枚举最大的点权其实就可以相当于枚举floyed中的k,那么这时我们要对k进行一个排序操作,使得我们每次枚举的中转点k为枚举经过路径的点权最大的点从而达到同时走最短路并维护点权最大值。 点击查看代码 #include 阅读全文
posted @ 2024-07-12 21:08 zhengchenxi 阅读(19) 评论(0) 推荐(1) 编辑
摘要:1.hash(yyds) 先鸽着 2.KMP 模式串匹配,利用一个前缀函数border,求出模式串失配时下次匹配的开始处,大大减小了时间开销。 设字符串T=“aabaaf”,我们求一下T的前缀表(用一个数组名为next的数组表示)。 第一个子串是t0=“a”,易知该子串没有前缀也没有后缀,故next 阅读全文
posted @ 2024-07-11 20:56 zhengchenxi 阅读(33) 评论(1) 推荐(2) 编辑
摘要:一.至多选一个 点击查看代码 #include"bits/stdc++.h" using namespace std; int main() { for(i = 0; i < n; i++) //n是总共种类 for(j = vmax; j >= 0; j--) //vmax是背包最大容量 for( 阅读全文
posted @ 2024-07-11 14:58 zhengchenxi 阅读(22) 评论(0) 推荐(3) 编辑
摘要:正常的求环的tarjan 点击查看代码 int tp,s[N],in_stack[N]; int dfn[N],low[N],dfncnt; int scc[N],sc,sz[N]; void tarjan(int u) { dfn[u]=low[u]=++dfncnt; s[++tp]=u; in 阅读全文
posted @ 2024-07-09 20:04 zhengchenxi 阅读(27) 评论(0) 推荐(3) 编辑
摘要:题目描述 棋盘覆盖 给定一个N行N列的棋盘,已知某些格子禁止放置。 求最多能往棋盘上放多少块的长度为2、宽度为1的骨牌,骨牌的边界与格线重合(骨牌占用两个格子),并且任意两张骨牌都不重叠。 输入格式 第一行包含两个整数N和t,其中t为禁止放置的格子的数量。 接下来t行每行包含两个整数x和y,表示位于 阅读全文
posted @ 2024-07-09 18:55 zhengchenxi 阅读(36) 评论(1) 推荐(3) 编辑
摘要:基本公式 (a+b)%mod=(a%mod+b%mod)%mod 设一个任意整数A=a10n+b10n1+...+c. 由此可以证明 \(A \quad mod \quad m=(((a \quad mod \quad m)*10+b \quad mod \quad m)*10 阅读全文
posted @ 2024-07-09 18:48 zhengchenxi 阅读(30) 评论(0) 推荐(3) 编辑

点击右上角即可分享
微信分享提示