上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 70 下一页
摘要: 第一次知道这种背包还能退的。。。。 我们用dp[ i ]表示选取若干个物品重量到达 i 的方案数。 如果我们g[ i ]表示不用第 x 个物品的, 然后选若干其他的物品到达 i 的方案数。 if(i < cnt[ x ]) g[ i ] = dp[ i ] else g[ i ] = dp[ i ] 阅读全文
posted @ 2019-03-21 17:12 NotNight 阅读(197) 评论(0) 推荐(0) 编辑
摘要: Coprime Arrays 啊,我感觉我更本不会莫比乌斯啊啊啊, 感觉每次都学不会, 我好菜啊。 阅读全文
posted @ 2019-03-21 10:36 NotNight 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 我们定义dp[ i ]表示长度为 i 的序列, 最后没有一个==k的时候返回的方案数, 也就是最后强制返回 i 的方案数。 我们能得到dp方程 dp[ i ] = sum(dp[ i - j - 1 ] * comb(i - 1, j) * F[ j ]) 0 <= j <= k - 1, 然后会发 阅读全文
posted @ 2019-03-20 12:54 NotNight 阅读(257) 评论(0) 推荐(0) 编辑
摘要: Too Much Money 最关键的一点就是这个贪心可以在sqrt(n)级别算出答案。 因为最多有sqrt(n)个不同的数值加入。 我们可以发现最优肯定加入一个。 然后维护一个当前可以取的最大值, 枚举加入的数来贪心。 阅读全文
posted @ 2019-03-19 17:17 NotNight 阅读(169) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include #define LL long long #define fi first #define se second #define mk make_pair #define PLL pair #define PLI pair #define PII pair #define SZ(x) ((int)x.size()) #defi... 阅读全文
posted @ 2019-03-19 16:10 NotNight 阅读(189) 评论(0) 推荐(0) 编辑
摘要: Bear and Bowling 4 这也能斜率优化。。。 max[ i ] = a[ i ] - a[ j ] - j * (sum[ i ] - sum[ j ])然后就能斜率优化啦, 我咋没想到, 我好菜啊。 斜率优化最重要的是转换成前缀形式, 我TM又忘了。 阅读全文
posted @ 2019-03-16 12:52 NotNight 阅读(171) 评论(0) 推荐(0) 编辑
摘要: Parking Lot 线段树区间合并一下, 求当前要占的位置, 不包括两端点的写起来方便一点。 阅读全文
posted @ 2019-03-15 19:33 NotNight 阅读(137) 评论(0) 推荐(0) 编辑
摘要: Trucks and Cities 一个很显然的做法就是二分然后对于每个车贪心取check, 这肯定会TLE, 感觉会给人一种贪心去写的误导。。。 感觉有这个误导之后很难往dp那个方向靠。。 dp[ k ][ i ][ j ]表示把 i, j 这个区间分成 k 段, 所有段的最大值的最小值为多少。 阅读全文
posted @ 2019-03-15 17:09 NotNight 阅读(143) 评论(0) 推荐(0) 编辑
摘要: Turtles 利用LGV转换成求行列式值。 阅读全文
posted @ 2019-03-13 19:30 NotNight 阅读(185) 评论(0) 推荐(0) 编辑
摘要: vp的时候没码出来。。 我们用set去维护, 每一块区域, 每块区域内的元素与下一个元素的差值刚好为ki,每次加值的时候我们暴力合并, 可以发现我们最多合并O(n)次。 然后写个线段树就没了。 阅读全文
posted @ 2019-03-13 16:28 NotNight 阅读(400) 评论(0) 推荐(0) 编辑
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 70 下一页