随笔分类 -  题解

摘要:[题解] 优先队列优化贪心&$CF2C$ 原题链 做法 因为处理这个问号的时候具有不确定性,所以我们干脆把所有的问号在一开始的时候全部初始化成右括号,这个时候再来看如果右括号多了,就可以把一些问号变成的右括号转换成左括号,这个操作的代价就是$a[i] - b[i]$,$a[i],b[i]$分别表示把 阅读全文
posted @ 2020-11-26 16:36 czyczy 阅读(120) 评论(0) 推荐(0)
摘要:[题解] \(lgP5018\) 题目链接 大体思路 $2018$年不会做这道题,$2020$年了还是不会… 这个题有很多不同的思路,比如:暴力$dfs$,或者中序遍历之后$manacher$,又比如接下来介绍的树形$DP$的方法。 这里实际上并不是严格的$DP$,只是类似与树形$DP$的思想,实际 阅读全文
posted @ 2020-11-23 15:24 czyczy 阅读(99) 评论(0) 推荐(0)
摘要:[题解] [笔记] 可反悔贪心 & \(lgP3620|lgP1484|lgP1792\) 写在前面 我们以$lgP1484$为例。 在考场上,我写了一个$DP(50pts)$,先放一下代码,虽然不是正解但和正解的思路有异曲同工之妙相同之处。 #include <bits/stdc++.h> usi 阅读全文
posted @ 2020-11-20 08:13 czyczy 阅读(178) 评论(0) 推荐(0)
摘要:[题解] [笔记]高斯消元 & 洛谷P3389 算法思路 消元 解决多元方程组的时候我们通常的方法有两个:加减消元和代入消元。高斯消元的原理就是加减消元。那么在解方程的时候如果要加减消元那么首先就要把某一个未知数的系数化成一样的。 放一段消元的代码 for(int i = 1;i <= n;i++) 阅读全文
posted @ 2020-11-18 10:56 czyczy 阅读(127) 评论(0) 推荐(0)
摘要:题解 [笔记]期望&洛谷P3232 期望 概念 期望在信息学中指的一般是达到结果的期望,最简单的计算方法就是每个情况的概率乘以这个情况的结果的值 例题理解以及公式 问题1 持续地抛一枚硬币,直到连续两次硬币正面朝上,求期望要抛的次数 解答:设$f_0$为没有抛出过正面的期望次数,$f_1$为已经抛出 阅读全文
posted @ 2020-11-17 21:23 czyczy 阅读(242) 评论(0) 推荐(0)
摘要:数学专题 快速幂 例题 算法用途 快速幂主要用于快速求出形如\(a^b\)的问题,如果是暴力的话要运算\(b\)次,而用快速幂只需计算\(log_2(b)\)次。 算法原理 例如现在要求的是\(3^{12}\),我们把\(12\)用二进制来表示是\(1100\),那么原问题就变成了求\(3^4*3^ 阅读全文
posted @ 2020-11-14 17:06 czyczy 阅读(272) 评论(1) 推荐(0)
摘要:[笔记] [题解] 状压$DP$&洛谷P1433 状压$DP$ 状压$dp$是动态规划的一种,通过将状态压缩为整数来达到优化转移的目的 -- \(OI wiki\) ​ 状态压缩的思想是用二进制来表示状态. ​ 状压$dp$的时间复杂度是$O(n22n)$的,通常只能用于$n \leq 21$的数据 阅读全文
posted @ 2020-11-12 15:01 czyczy 阅读(132) 评论(0) 推荐(1)
摘要:[笔记] [题解]斜率优化$DP$&洛谷P3195玩具装箱 ##可能加载的有点慢,在预览的时候可能公式显示不了,点进去看就行了QvQ 原题链 斜率优化讲解 对于洛谷上的这道题,我们设$sum[k] = \sum_^kC[i]+1$(可以把S数组视为$C$的前缀和),用$dp[i]$表示装好前$i$个 阅读全文
posted @ 2020-11-10 16:30 czyczy 阅读(175) 评论(0) 推荐(1)
摘要:$DP$专题 C'est dur. 数位$DP$ 原题链 算法概述 数位$DP$主要求解的是在给定区间$l,r$中满足条件的解的个数这一类问题.我们一般把求区间$l,r$转换成求区间$0,r$和$0,l-1$,再将得到的结果相减就是答案. 对于$不要62$这个问题,我们可以设$f[i][j]$表示位 阅读全文
posted @ 2020-11-09 20:34 czyczy 阅读(194) 评论(3) 推荐(0)
摘要:原题链 题目大意 其实就是一个有限制的$01$背包,考虑两个物品a,b.如果两个物品都可以买,但是先买了a就不能买b,但先买b还可以买a,那么很明显买先b更优,所以这就涉及到要进行排序再加01背包,将$a,b$买的先后关系表示出来就是程序里的cmp函数 代码 #include <bits/stdc+ 阅读全文
posted @ 2020-11-09 10:25 czyczy 阅读(107) 评论(0) 推荐(0)
摘要:[题解]洛谷P4653 原题链 大体算法 我们可以发现,点亮权值越大的灯泡一定比点亮权值小的灯泡优(显然),所以我们肯定从最大的开始连续地取,那么我们先将权值从大到小排个序,接下来先考虑暴力算法,就是枚举$a$数组取到第$i$位,$b$数组取到第$j$位,并且暴力统计答案,这是我们发现每次统计到第$ 阅读全文
posted @ 2020-11-02 20:52 czyczy 阅读(129) 评论(0) 推荐(0)
摘要:[笔记][题解]割点&lgP3388 原题链 割点的概念 在无向连通图中,如果将其中一个点以及所有连接该点的边去掉,图就不再连通,那么这个点就叫做割点. 解题方法 这个题我们用类似于缩点的方法,定义$dfn$和$low$数组,$dfn$指的是$dfs$序,$low[x]$指的是$x$节点不通过父亲节 阅读全文
posted @ 2020-10-30 16:02 czyczy 阅读(141) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2020-10-29 19:23 czyczy 阅读(2) 评论(0) 推荐(0)
摘要:[题解][笔记]lgP1368&最小表示法 原题链 算法用途 这个题就是要求在一个循环同构串中找出字典序最小的排列 算法过程 首先,因为这个数列可以把第一个元素一道最后一个去,所以我们把这个序列倍长,这样就不用对指针取模啥的,更加方便. 接着来讲算法的主体.首先我们先假设有一个排列:$7 5 3 3 阅读全文
posted @ 2020-10-28 16:52 czyczy 阅读(99) 评论(0) 推荐(1)
摘要:[题解]lgP4052文本生成器 问题分析 ​ 这个题是要求多模式串的匹配,所以自然的想到AC自动机,但是题目中说"至少含有一个认识的单词"并不好处理,所以我们不妨求出所有不存在认识的单词的文本串,再用总的可能情况减去不含有认识单词的文本串数量即可. ​ 既然要求不存在认识单词的文本串,那么匹配过程 阅读全文
posted @ 2020-10-26 12:12 czyczy 阅读(137) 评论(0) 推荐(1)
摘要:[题解][笔记]AC自动机 算法概述: AC自动机的用途主要是在一个文本串中查询多个短字符串,它的主要构成就是一颗$trie$树再加上一些$kmp$的思想. 模拟算法过程: ​ 首先给定$4$个模式串:\(ash\),\(shex\),\(bcd\),\(sha\).并建立一颗$trie$树. 接着 阅读全文
posted @ 2020-10-26 10:32 czyczy 阅读(99) 评论(0) 推荐(1)
摘要:原题链 这个题其实完全不必用权值线段树去做,只是现在有点看不懂树状数组线段树用途更多,而且我要学线段树合并的原因 算法概述: 权值线段树其实和普通线段树没有什么本质上的区别,只是维护的东西不一样,平时我们做的线段树是维护的区间和,而权值线段树维护的是某个数或几个数出现次数的和.同时应该注意的是权值线 阅读全文
posted @ 2020-10-23 15:06 czyczy 阅读(104) 评论(0) 推荐(1)
摘要:原题链 初始思路 这道题一看就是$dp$题,设$f[x]$是到$x$位置的最大冰冻效果,转移的话就是:\(f[x]=max(f[k])+val[x] -- k∈[x-r,x-l]\),但是由于数据范围的原因,裸的$dp$是不行的,我们发现我们求的是最大值,而且有转移方程是得知是一个最值加上一个定值, 阅读全文
posted @ 2020-10-23 10:34 czyczy 阅读(92) 评论(0) 推荐(0)
摘要:[笔记]树链剖分 算法概述 ​ 树链剖分就是把一棵树分成几条不相交的链来做. 变量定义 重儿子:某个节点(非叶子节点)的子树中,节点个数最多的子树的根节点(即与这个点相连的点)就是这个点的重儿子. 轻儿子:对于一个非叶子节点,它的儿子中非重儿子的剩下所有儿子就是轻儿子,也就是说叶子节点没有轻儿子或重 阅读全文
posted @ 2020-10-20 16:52 czyczy 阅读(101) 评论(0) 推荐(0)
摘要:原题链 思路:由于操作数很小,所以其实大部分的点是不会被修改的,所以预处理出那些永远不会被修改的点,放到并查集里,接着就可以暴力了. #include<bits/stdc++.h> using namespace std; int exist[5010][5010],x[1000010],y[100 阅读全文
posted @ 2020-10-20 08:20 czyczy 阅读(114) 评论(0) 推荐(0)