codeforces765F Souvenirs】的更多相关文章

本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! 题目链接:http://codeforces.com/contest/765/problem/F 正解:线段树 解题报告: 我看完这道题,只想到了莫队套平衡树套堆的带$log$根号算法(和暴力有啥区别)… 考虑把询问按右端点排序,那么我可以从左往右把端点一…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2126 题意:给你n个物品,m元钱,问你最多能买个多少物品,并且有多少种解决方案. 一开始想到的是,先解决给m元钱因为我花的钱少就一定能购买够多的物品,因此是个贪心算法. 记买最多的物品数为c. 然后就是设计状态dp[i][j]代表我从前i个物品里花了j元钱,买c个物品有多少种方案. 后来发现状态维数不够,得重新想想. 于是就想到: 设计状态dp[i][j][k]代表我从前i个物品里买了j个,花的钱不…
题意:给出t组数据 每组数据给出n和m,n代表商品个数,m代表你所拥有的钱,然后给出n个商品的价值 问你所能买到的最大件数,和对应的方案数.思路: 如果将物品的价格看做容量,将它的件数1看做价值的话,那么用01背包就可以求的花费m钱所能买到的最大件数dp[m]. 但是题目还要求方案数,因此很容易想到再建立一个数组f[j],存储j元钱能买dp[j]个物品的方案数. 在求解01背包的过程中,要分两种情况讨论: 设当前所选的物品为i 1.   若选了物品i后,能买的件数比不选物品i的件数大,即dp[j…
DP还有很长很长一段路要走.. 题意:给出n纪念品的价格和钱数m,问最多能买多少件纪念品和买这些数量的纪念品的方案数. 首先,求能买最多的纪念品的数量,用贪心法可以解决.将价钱排序,然后从最便宜的开始买,这样就很容易求得最多买的纪念品的数量. 方案数就要用到动态规划. dp[j][k]表示花费不超过j元买k件物品的方案数 dp[j][k] += dp[j-a[i]][k-1] 因为这里本来是个三维数组的,多一个维度用来表示前i件物品.调整了循环顺序,类似01背包空间上的优化,所以倒着循环就可以利…
数组01背包. http://acm.hdu.edu.cn/showproblem.php?pid=2126 http://blog.csdn.net/crazy_ac/article/details/7869411 f[i][j][k]表示前i种物品,买了j个,花了小于等于k的钱的时候的方案数 因为是小于等于k,所以初始化的时候要注意哦. 那么转移的时候第i种物品取或者不取 f[i][j][k]+=f[i-1][j][k];   f[i][j][k]+=f[i-1][j-1][k-v[i]];…
CF765F Souvenirs [CF765F]Souvenirs 主席树 - CQzhangyu - 博客园 其实不用主席树 感觉像是离线问题 但是不能支持差分.分治又处理不了 考虑按照右端点排序,线段树维护左端点为i的时候的答案 然后trick一下,把求ansl,变成求min(ansl....ansr),这样可以少更新很多 先把|ai-aj|变成j<i,aj>=ai这样找,然后再反过来做一次. 新加入的a[i],找之前第一个大于a[i]的a[pos],(pos是所在位置) 在pos位置更…
Description Artsem is on vacation and wants to buy souvenirs for his two teammates. There are n souvenir shops along the street. In i-th shop Artsem can buy one souvenir for ai dollars, and he cannot buy more than one souvenir in one shop. He doesn't…
[CF765F]Souvenirs 题意:给你一个长度为n的序列{ai},有m个询问,每次询问给出l,r,问在所有$l\le x < y\le r$中,$|a_x-a_y|$的最小值是多少. $n\le 10^5,m\le 3\times 10^5,a_i\le 10^9$ 题解:网上的标程都是在线段树上搞一搞就完事了,但是我怎么看都觉得是$O(n\log^3n)$的.看官方题解,里面也没写具体做法.于是我一脸懵逼的情况下用了主席树来维护,起码保证了$O(n\log^2n)$的复杂度.(应该是做…
E. Selling Souvenirs time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output After several latest reforms many tourists are planning to visit Berland, and Berland people understood that it's an op…
Souvenirs 我们将询问离线, 我们从左往右加元素, 如果当前的位置为 i ,用一棵线段树保存区间[x, i]的答案, 每次更新完, 遍历R位于 i 的询问更新答案. 我们先考虑最暴力的做法, 我们先找到位于 i 前面第一个 j, a[ j ] > a[ i ], 那么x 属于 [ 1, j ]的答案 就会被a[ j ] - [ i ] 更新一下. 然后下一个找在 j 前面第一个 k, a[ k ] >= a[ i ] && a[ k ] < a[ j ], 这个过…