有意思题目
文章平均质量分 57
pigonered
吾有一言,名之曰......
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
NOIP2020 T1排水系统
传送门luoguP7113 我们先手动模拟一下: 虽然图画的丑,也画的水。 但我们不难发现: 流向子节点的水等于父节点的水除以出度。 由于要得到某个点的流量,我们要先计算出父节点的流量,这样我们不难发现要用的拓扑排序 尽管图中没画出多个源点,我们发现从多个源点出发寻找过于麻烦,我们不妨用一个超级源点去连所有源点,超级源点的水就是所有的和,这样就巧妙的解决了这个问题。 由于是分数的计算,这里我使用的结构体存分子和分母。 将超级源点分子为所有源点之和,分母为1 对于一个没有被更新的点,即分子分母均为0,原创 2021-11-15 21:39:16 · 690 阅读 · 0 评论 -
DP最长上升或下降子序列应用:导弹拦截&&最长公共子序列
第一题 传送门luoguP1020导弹拦截 容易发现一颗导弹所能打击的最多目标即是最长不上升子序列。 对于一共需要多少个系统来打,我们发现:对于一个上升子序,其中的每一个元素我们都需要使用1个系统打,我们找到了最长的上升子序,可以发现,不属于这个子序的元素一定是下降或者与其中的某个元素相等,对于一个下降序列的某个元素肯定会上升子序的某个元素,所以整个下降序列就可以被统计,而相等的元素,只需要1个系统就可以解决,所以也可以统计到。 最终,最长上升子序列即是需要系统的个数。 问题转化到这里,肯定是用dp求解,那原创 2021-10-28 15:22:19 · 162 阅读 · 0 评论 -
数位DP应用:round numbers
传送门luoguP6218 题目要求找出二进制下0的个数至少大于等于1的个数的数。 容易发现这是一道数位dp的题目,1~r的个数减去1~l-1的个数等于l~r区间的个数。我们还要关注前导零,因为前导零是不能统计到0的个数中的,当然还有最高位限制,然后记忆化搜索。 基本的都已经分析过,主要是我们该使用哪些状态来描述呢? 肯定要描述第t位的状态,既然题目要求0和1的个数,我们不妨就令另外状态为num0表示当前0的个数,num1表示当前1的个数。即dp[t][num0][num1]。 当进入dfs初始化时,前导0原创 2021-10-26 21:38:52 · 145 阅读 · 0 评论 -
强连通分量缩点应用:间谍网络
传送门luoguP1262 通过本题我们不难发现: 1.对于每一个点,那么入度为0必须贿赂,就可以去揭发其他的了 2.对于每一个环,如果一个环上存在一个可以行贿的间谍,那么这个环都可以解决,我们只需要找到每个环上的需要钱的最小值,把它看做一个点。点权值就是最小的钱。这样我们就只需通过找入度为0的点了 首先判断是否有点没有更新,即其他人无法揭露它,它也不能被检举,那么就输出NO 然后我们枚举每一个边所对应的2个点,如果两个点不属于同一连通分量,那么将指向的那个连通分量的入度加+1,最后找到入度为0的点,统计他原创 2021-10-24 19:39:37 · 2407 阅读 · 0 评论 -
线段树应用:区间合并
传送门luoguP2894 本题我们要维护最左边的值,考虑使用线段树维护。我们发现只用一个来存储当前的节点的值并不够,因为对于一个节点我们无法用一个来描述这整个区间哪些为空,哪些满了,例如查询的跨越了两个区间,我们就无法找到最左边的了。 所以我们考虑用多个变量描述该区间的状态: lmx表示该区间最左边连续为空的个数, rmx表示该区间最右边连续为空的个数, len表示整个区间的总房间数, sum表示整个区间的总空房间数。 这样我们可以很好的描述状态了, 对于一个节点的左房间数等于t[k].lmx, 若左儿子原创 2021-10-22 17:00:54 · 323 阅读 · 0 评论
分享