摘要:
"传送门" 解题思路 首先这道题如果有两个以上长度的回文串,那么就一定有三个或两个的回文串,所以只需要记录一下上一位和上上位填的数字就行了。数位$dp$,用记忆化搜索来实现。设$f[i][j][k][0/1]$表示填到了第$i$位,上上位数字为$j$,上一位数字为$k$,$0/1$表示有没有出现过回 阅读全文
摘要:
"传送门" 解题思路 对于第$i$周来说,最小的花费 $sum=min(y[i] (c[j]+s(i j)))(1 include include include include define int long long using namespace std; const int MAXN = 1 阅读全文
摘要:
"传送门" 解题思路 用堆贪心,每次能走就走,不能走从大根堆里取出以前加进去的油量并更新答案。 代码 cpp include include include include include using namespace std; const int MAXN = 10005; inline int 阅读全文
摘要:
"传送门" 解题思路 贪心,首先因为$n$比较小,可以$2^n$枚举子集。然后判断的时候就每次看后面的如果用最大生产力生产能不能达成目标,解一个二次函数。 代码 include include include include include define int long long using na 阅读全文
摘要:
"传送门" 解题思路 还是比较好想的,用一个队列,然后把所有点放在一起排个序,依次入队。每次检查队头元素的种类是否为当前入队元素种类,是的话就一直$pop$,每次更新答案即可。 代码 cpp include include include include include include using 阅读全文
摘要:
"传送门" 解题思路 一道0/1分数规划+树上背包,两个应该都挺裸的,话说我常数为何如此之大。。不吸氧洛谷过不了啊。 代码 阅读全文