摘要: 题目链接:D. Digits 思路:$1e6 * 10$的$dp$每次更新以k为结尾的最大值就好了(最开始的想法是正确的),有一点是因为是乘法,所以必须进行取log操作,让乘法变成加法,才不会爆。然后需要注意的是进行存放方案的操作有些许的麻烦。 \(Code:\) #include<set> #in 阅读全文
posted @ 2021-05-08 20:24 xiaodangao 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 题目链接:G.Guide 思路:想了好久。。贪心的想法是在一颗最长链上进行不回溯操作,我们需要一遍dfs标记出最长链,然后进行第二次dfs寻找答案,我们必须让dfs“死”在最长链上,方法是如果一个节点的子节点在最长链上,那么最后再进行dfs操作。然后在dfs中记录当前标记的非最长链上的点的数量,如果 阅读全文
posted @ 2021-05-08 20:18 xiaodangao 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 题目链接:C. The Sports Festival 思路:区间DP,如果我们将这些数放在一个数轴上可以发现最优解的一些性质,比方说已排序后的序列[。。。。11,12,13,14],假设我们前面已经有选择过的数了,我们选择的时候一定是先选择13在选择14,因为,设没选择13之前的最小值为$min$ 阅读全文
posted @ 2021-04-26 21:22 xiaodangao 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题目链接:L3-011 直捣黄龙 思路:提供两种思路,一种dfs嗯搜,一种迪杰斯特拉,因为数据量小,随便过,就是麻烦 \(Code:\) #include<set> #include<iostream> #include<cstring> #include<cmath> #include<cstdi 阅读全文
posted @ 2021-04-23 20:40 xiaodangao 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 题目链接:L3-018 森森美图 题意:这个题的题意很迷,大概意思就是给你一个起点一个终点,然后起点和终点连线的直线将图划分成两部分,然后分别求这两部分的起点到终点的最短路径val相加,需要注意的是,对于边权的计算,这个题边权的计算有点迷,大概就是若a->b->c均不是斜向边,那么总边权为$a+b+ 阅读全文
posted @ 2021-04-21 21:38 xiaodangao 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 题目链接:D. Playlist 题意:略 思路:模拟,先思考我们需要完成什么操作,因为数组是$1e5$级别的,所以用遍历的方式一次次的删除,太慢,所以我们需要一种数据结构,支持插入,删除,查找,遍历,且最坏时间复杂度是$\Theta(logn)$,平衡树恰巧能够干这个活,所以我们选择用set来处理 阅读全文
posted @ 2021-04-21 14:13 xiaodangao 阅读(112) 评论(0) 推荐(1) 编辑
摘要: 题目链接:E. Cheap Dinner 题意:略 思路:一开始先写了一个$n2$的$dp$,然后发现是T,证明方法没什么问题,然后发现他虽然能连接的边数目是$n2$不过不能连接的边最多也就$1e5$这个级别,就算一个一个遍历也可以接受,不如从第一号菜开始,sort根据第一号菜大小排序,然后对于第二 阅读全文
posted @ 2021-04-20 10:30 xiaodangao 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 链接:L3-017 森森快递 题意:略 思路:本来想的是dfs来做,不过最后做假了,最后一想想起来一个贪心的做法,我们必须让它的范围尽可能的小,因为他只有范围尽可能的小,才能够尽量不影响别的区间,所以我按区间范围从小到大排序,再用线段树来做,成功WA在最后一个点上,正确做法是贪心,**是根据区间右端 阅读全文
posted @ 2021-04-19 17:44 xiaodangao 阅读(611) 评论(0) 推荐(0) 编辑
摘要: 题目链接:E. Colorings and Dominoes 思路:我们先考虑一种最简单的情况:oooooo,我们用1代表红色,0代表蓝色,我们先计算他对于5个o的情况来说,多增加了几个,因为一个多米诺骨牌占2格,所以形如000011这种情况,这在他的上一种情况(00001)中是显然多增加了1,那么 阅读全文
posted @ 2021-04-14 10:44 xiaodangao 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 题目链接:C. Pekora and Trampoline 思路:差分,经过仔细思考可以发现,最优解一定是都在1这个位置进行跳跃,因为假设1这个位置上的a[1]=1,那么他会跳到2,也就是具有传递性,直到跳到一个value不为1的地方,这和一开始就在该位置跳是一样的。证明了这个之后,我们进一步思考可 阅读全文
posted @ 2021-04-10 16:37 xiaodangao 阅读(55) 评论(0) 推荐(0) 编辑