2021年11月19日
摘要: 分析 听同学说调了很久,主页也看到好几个帖子,就来看了看,受二分误导调了很久,但显然正确性有问题,考虑对同一组数据 \(k\) 变化的影响。 显然,在删数时只会导致能删的更多,\(k\) 变小也会使删的更多,所以先读入所有的 \(k\),自大到小排序处理,这样答案单调递减,每个数就只用删一次就可以了 阅读全文
posted @ 2021-11-19 11:33 漠寒· 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 分析 先考虑单增,最好的方式就是不断地构造出长为 \(k\) 的单增序列,为保证后面序列不会成为前面单增序列的延续,每一个序列值域上需要完全高于下一个,即本段最小值大于下段最大值,同时显然如果超过 \(k\) 个序列单减则会超出要求,因此 \(k \times k>n\) 时则输出 \(-1\) 即 阅读全文
posted @ 2021-11-19 11:33 漠寒· 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 分析 首先看数据范围就知道这应该是一个 \(O(nk)\) 的题。考虑 dp。 用 \(f[i][j]\) 表示抓取了 \(i\) 个,最后一个是 \(j\) 的答案之和,\(g[i][j]\) 表示有多少种不同的抓取方案,最后答案就是所有满足要求的 \(f\) 之和除以对应的 \(g\)。 转移时 阅读全文
posted @ 2021-11-19 11:31 漠寒· 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 分析 看到数据范围就直接想状压。对于每一种状态,它的高度是一定的,你更改上下次序只会影响上面还能放多少重量,所以用 \(H[i]\) 预处理 \(i\) 这个状态总高度多少,用 \(f[i]\) 表示 \(i\) 这个状态最多上面还能放多少重量,转移应是新放的牛的承重量和被转移的 \(f\) 值减去 阅读全文
posted @ 2021-11-19 11:31 漠寒· 阅读(6) 评论(0) 推荐(0) 编辑