codeforces 526 c Om Nom and Candies
题意:
给出一个容量为c背包,两种物品的价值hr,hb和容量cr,cb,求装满背包能装的最大价值。
限制:
1 <= c,hr,hb,wr,wb <= 1e9
思路:
剩余系
设第一种物品有x个,第二种物品有y个,则有:
x*hr + y*hb <= c
则有:
(c-y*hb) % hr = t
不难看出对于同一个剩余系t,最优值在两端。
所以求出所有剩余系,比较最优值,得到全局最优。
复杂度O(sqrt(n))
题意:
给出一个容量为c背包,两种物品的价值hr,hb和容量cr,cb,求装满背包能装的最大价值。
限制:
1 <= c,hr,hb,wr,wb <= 1e9
思路:
剩余系
设第一种物品有x个,第二种物品有y个,则有:
x*hr + y*hb <= c
则有:
(c-y*hb) % hr = t
不难看出对于同一个剩余系t,最优值在两端。
所以求出所有剩余系,比较最优值,得到全局最优。
复杂度O(sqrt(n))
/*codeforces 526 c Om Nom and Candies
题意:
给出一个容量为c背包,两种物品的价值hr,hb和容量cr,cb,求装满背包能装的最大价值。
限制:
1 <= c,hr,hb,wr,wb <= 1e9
思路:
剩余系
设第一种物品有x个,第二种物品有y个,则有:
x*hr + y*hb <= c
则有:
(c-y*hb) % hr = t
不难看出对于同一个剩余系t,最优值在两端。
所以求出所有剩余系,比较最优值,得到全局最优。
复杂度O(sqrt(n))
*/
#include<iostream>
#include<cstdio>
#include<algorithm>
#includ