04 2022 档案

摘要:分析:首先可以设计一个简单的dp。设dp[i][j]表示前i个数已经被选,且当前buffer的左端点在j这个位置的最小代价。注意到这个dp的有用点是很少的(有用点的意思是dp[i][j]不是由dp[i][j-1]或者dp[i][j+1]转移而来的),而且所有的有用点集中在buffer覆盖在第i个数所 阅读全文
posted @ 2022-04-29 01:42 menhera 阅读(117) 评论(0) 推荐(0)
摘要:分析: 首先先考虑300分做法:$dp[i][j]$表示前i个木板,第i个木板的左端点停在j处,转移的话就是$$dp[i][j] = dp[i-1][k] + |l[i]-j|,k \in [j-len_{i-1},j+len_i]$$ 然后把dp[i]看作是关于j的函数,注意到这个函数是下凸包的。 阅读全文
posted @ 2022-04-27 01:00 menhera 阅读(383) 评论(0) 推荐(0)
摘要:题目描述: $n$张牌每个牌有权值$a_i$,要求选择$k$次,每次让牌的权值减一,使得牌的权值形成从$1$开始的连续整数(不含$0$). $n,k,ai \leq 50$ 分析: 先考虑朴素dp,先将$a_i$排序,$dp[i][S][j]$表示前$i$个数,把$S$这些位填上了,还剩$j$次行动 阅读全文
posted @ 2022-04-26 01:09 menhera 阅读(949) 评论(1) 推荐(0)
摘要:分析:首先从左到右建出可持久化trie树,这样第r棵trie减去第l-1棵trie得到的结果对应的就是询问[l,r]的trie树。然后在trie树上游走,相当于从大到小讨论每一位。如果存在两个以上该位是0的数,则在trie树上向左走是没问题的;否则要么不存在该位是0的树,这时候只能在trie树上向右 阅读全文
posted @ 2022-04-09 10:36 menhera 阅读(175) 评论(0) 推荐(1)
摘要:分析:看到$\sum i*b_i$的式子以及每次传球向右移动一位,很容易想到HNOI2017项链的循环卷积。假设我们用FFT处理出来了每个环传0次,传1次,传2次,...,传环的大小n-1次对应的结果。那么对于每个询问k,只需要对于每个环,找出k模环的大小对应的答案即可。但是如果对每个环都找,时间复 阅读全文
posted @ 2022-04-07 23:27 menhera 阅读(228) 评论(0) 推荐(0)