随笔分类 - A-dp-简单dp
摘要:题目链接 题目解析 首先考虑怎么求。 刚开始想的如果一个数可以被其它数凑出来就不要它,这很对,但不能拿来算答案。 考虑到如果足够大,那么可以凑出来的数能达到去掉可以凑出来的数的两倍。 所以答案就是去掉它,剩下的数可以凑成的数的个数最多。当然,个数相同取最小。 这个怎么求呢?我们可以
阅读全文
摘要:题目链接 题目解析 我们知道背包方案数的递推式长这样: 如果一件物品不选,就会少一次这样的转移贡献。 于是我们把这个贡献还回去。 就做完了。 ►Code View #include<cstdio> #includ
阅读全文
摘要:题目链接 题目解析 其实是一道水题,但我还是想了好久(指 首先可以搞一个一般的出来:定义表示走到的方案数 那么有转移: 这个转移的复杂度消耗是巨大的,但是由于比较小,而且符合条件的转移对象是连续的,所以可以用前缀
阅读全文
摘要:题目链接 题目解析 我是这么想的: 所以题目是求个形如的形式的数的和为的方案数。(然而并没有什么用,只是把题意反过来了而已qwq (忘掉前面的东西 考虑这样一个:设表示个数和为,考虑转移,由于放数的种
阅读全文
摘要:题目链接 这道题还是比较简单的,~~(主要问题在于读题)~~但是鉴于我自己没有很顺畅地做出来,所以记录一下。 注意到有个的部分分,先考虑这个部分分怎么做。 可以定义表示前个小朋友一共分了颗糖的答案。 考虑转移:\(dp[i][j]=\sum (dp[
阅读全文
摘要:题目传送门 回忆童年 1 /* 2 ID: Starry21 3 LANG: C++ 4 TASK: ariprog 5 */ 6 #include<iostream> 7 #include<string> 8 #include<cstdio> 9 #include<cstring> 10 #inc
阅读全文