随笔分类 -  热身训练

摘要:数位dp 数位dp是一种计数用的dp,一般就是要统计一段区间$[L,R]$内,满足一定条件的数的个数,或者各个数位的个数。 数位dp使得暴力枚举变为满足一定状态的记忆化,更加优秀。 数位dp常常会考虑以下问题: 1.前导零的处理$lead$ 2.枚举的上界$limit$ 3.得到答案的条件 一般数位 阅读全文
posted @ 2021-08-21 12:01 kzsn 阅读(76) 评论(2) 推荐(0)
摘要:Article 在这个学期即将结束时,DRD开始写他的最后一篇文章。 DRD使用著名的Macrohard的软件World来写他的文章。 不幸的是,这个软件相当不稳定,它总是崩溃。 DRD需要在他的文章中写N个字符。 他可以在i+0.1的时候按一个键来输入一个字符,其中i是一个等于或大于0的整数。 但 阅读全文
posted @ 2021-08-18 22:01 kzsn 阅读(72) 评论(0) 推荐(0)
摘要:Eighty seven 简要题意: n个卡片,其中第i个卡片的数值为$a[i]$。一共q次询问,每次询问将删去其中3个卡片(可能删除若干相同的卡片)后,问能否选出10个卡片,数值之和等于87。 n≤50,q≤100000 分析: 当我们知道删去哪些卡片后,这是一道很显然的背包dp。 dp[i][j 阅读全文
posted @ 2021-08-18 21:45 kzsn 阅读(127) 评论(0) 推荐(0)
摘要:The All-purpose Zero 简要题意: 长度为n的数组,每个数字为S[i],$0$是一种很神奇的数字,你想要的,它都可以变! 问这个序列的最长上升子序列长度为多少? 分析: 我们将除了‘0’以外的S[i],减去i之前出现的‘0’的个数,最后求得排除‘0’后的最长上升子序列长度,加上‘0 阅读全文
posted @ 2021-07-21 18:50 kzsn 阅读(71) 评论(0) 推荐(1)
摘要:Palindrome 简要题意: 我们有一个字符串S,字符串的长度不超过500000。 求满足S[i]=S[2n−i]=S[2n+i−2](1≤i≤n)(n≥2)的子串个数。 分析: 我们能通过简单的数学知识,得到: 该子串是两个回文串拼在一起的,例如abcbabc中,前5项为一个回文串,后5项有一 阅读全文
posted @ 2021-07-21 14:56 kzsn 阅读(87) 评论(0) 推荐(0)
摘要:先看一道例题:regular number 简要题意: 我们有一个长度为$n$的模式串,其中的每一位有多种可能。 我们还有一个长度不超过5*106的主串。 问,有哪些模式串在主串中出现过,输出这些模式串。 分析: 这道题我们可以理解为有多个模式串,要看每个模式串能否与主串匹配。 很显然的是,我们难以 阅读全文
posted @ 2021-07-20 21:53 kzsn 阅读(366) 评论(2) 推荐(2)
摘要:题目描述 简要题意: n个数字,a1,a2,...,an m次询问(l,r),每次询问需回答 1.gcd(al,al+1,al+2,...,ar);2.gcd(ax,ax+1,ax+2,...,ay)=gcd(al,al+1,al+2,...,ar)的个数(x<=y)。 分析: 算第一个询问,由于a 阅读全文
posted @ 2021-07-19 19:18 kzsn 阅读(113) 评论(0) 推荐(0)
摘要:题目来源 简要题意: 众所周知,在许多情况下,一个词语有两种意思。比如“hehe”,不仅意味着“hehe”,还意味着“excuse me”。 现在,某某在和妹纸在线聊天,妹纸发送了一个句子A给某某。某某很聪明,知道这个句子中的词语B有两种意思。他想知道妹纸有多少种可能想表达的意思。 分析: 我们令可 阅读全文
posted @ 2021-07-19 19:05 kzsn 阅读(71) 评论(0) 推荐(0)
摘要:题目出处:Calculator 简要题意: 你有一个确定的函数,f(x)=+...*...^...,其中共有n个操作,从左到右依次计算。 共有m次询问,我们每次询问,1.会修改f(x)中的操作;2.输出f(x)%29393 分析: 分解29393可以得到7*13*17*19,这几个数都很小,很容易预 阅读全文
posted @ 2021-07-19 18:42 kzsn 阅读(74) 评论(0) 推荐(0)
摘要:点此进入 题意: 一棵树,n+1 个节点,以0号节点为根,给出端点(a,b),节点a到节点b的路径上,至少有一个点是“坏掉的”,求“坏掉的点”最少 分析: Step1:贪心 每次给出的两个端点,我们可以得到他俩的lca,画一下图我们即可知道,lca深度越深,下面的点就越需要单独选一下,并且选了之后, 阅读全文
posted @ 2021-07-15 19:56 kzsn 阅读(100) 评论(0) 推荐(1)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6333 题意: 求 C(0,n)+C(1,n)+...+C(m,n) 分析: 这道题,我们令s(m,n) = C(0,n)+C(1,n)+...+C(m,n) 那么这道题就变成求各种s(m, n) 于是,莫队这个算 阅读全文
posted @ 2021-07-15 19:43 kzsn 阅读(73) 评论(0) 推荐(1)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=6 分析: 这道题,全都是1e9,所以我们很容易想到“矩阵快速幂”。 假如说我们没有后面那个“向下取整”的东西,而将他看作一个常熟C 我们可以很轻松的得到矩阵幂的式子 然后呢,那个常熟C却会随着i变化 我们只需要整除 阅读全文
posted @ 2021-07-15 19:31 kzsn 阅读(93) 评论(0) 推荐(1)
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5242 简要题意: 一棵树有n个节点,每个节点x有一个权值wi,我们要从根节点出发(不可回头),去收集每个节点的权值,值得注意的是,每个权值只会被收集一次。求最多可得的值 分析: 我们肯定从根节点开始走,一直走到一 阅读全文
posted @ 2021-07-15 19:08 kzsn 阅读(105) 评论(0) 推荐(0)
摘要:点此看题 简要题面: 一棵树上有n个节点,每个节点有对应的名字(名字可重复)。 每次询问,求深度比$vi$多$ki$的$vi$的儿子中,有多少种名字 分析: Step1: 我们可以懂$DFS$轻松找到每个节点的深度dep[x], 同时用$DFS$序列得知每个节点间的关系(也就是说,可以用in[x]与 阅读全文
posted @ 2021-07-15 18:45 kzsn 阅读(86) 评论(0) 推荐(1)