【题解】CF161B Discounts

目录

  • 题目
  • 思路
  • \(Code\)

题目

CF161B Discounts

思路

贪心。很显然对于一个板凳(价格为c)所能使我们最多少花费\(\frac{c}{2}\)的金钱。

原因如下:

  • 如果你将一件价格比该板凳大的商品与板凳放在一起没有贡献。

  • 如果你将一件价格比该板凳小的商品与板凳放在一起贡献减小。

贪心策略:将板凳中价格前\(k-1\)大的单独放一辆购物车,板凳不够就用商品即可。

\(Code\)

#include
#include
#include
#include
#include
#include
#define min(a,b) a'9'){if(c=='-')f=!f;c=getchar();}
    while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
    T=f?-x:x;
}

inline void write(int x) {
    if(x<0) putchar('-'),write(-x);
    else {
        if(x/10) write(x/10);
        putchar(x%10+'0');
    }
}

int n,k;
struct dx {
    int w,type,num;
    friend bool operator <(dx x,dx y) {
        if(x.type==y.type) return x.w>y.w;
        return x.type

你可能感兴趣的:(【题解】CF161B Discounts)