• JustOj 2040: 王胖子买零食 (贪心)


    题目描述

    大豪哥有个好朋友叫王胖子,众所周知王胖子特别爱吃零食,比如各种不一样的糖果,辣条呀,可是王胖子每个月用在买零食上的钱不是固定的,但是因为王胖子特别爱吃零食,他希望把自己能花在买吃的钱全部用掉,来换得最多的零食

    输入

    先输入王胖子有n块钱可以用来买吃的,商场里有m件零食(0<=n,m<=1000)
    接下来有m行,每行包括这件零食的单价(元/kg),以及商场有多少kg这种商品
    所有输入数据都在int型范围内

    输出

    输出王胖子最多可以有多少零食(保存4位小数)

    样例输入
    100 4
    10 9
    5 4
    8 5
    20 50
    样例输出
    13.0000

    题解:贪心,每次拿最便宜的
     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cstring>
     4 #include <cstdio>
     5 #include <vector>
     6 #include <cstdlib>
     7 #include <iomanip>
     8 #include <cmath>
     9 #include <ctime>
    10 #include <map>
    11 #include <set>
    12 using namespace std;
    13 #define lowbit(x) (x&(-x))
    14 #define max(x,y) (x>y?x:y)
    15 #define min(x,y) (x<y?x:y)
    16 #define MAX 100000000000000000
    17 #define MOD 1000000007
    18 #define pi acos(-1.0)
    19 #define ei exp(1)
    20 #define PI 3.141592653589793238462
    21 #define INF 0x3f3f3f3f3f
    22 #define mem(a) (memset(a,0,sizeof(a)))
    23 typedef long long ll;
    24 ll gcd(ll a,ll b){
    25     return b?gcd(b,a%b):a;
    26 }
    27 bool cmp(int x,int y)
    28 {
    29     return x>y;
    30 }
    31 const int N=1005;
    32 const int mod=1e9+7;
    33 struct node
    34 {
    35     int x, y;
    36 }a[N];
    37 bool cmp1(node b1,node b2)
    38 {
    39     return b1.x<b2.x;
    40 }
    41 int main()
    42 {
    43     std::ios::sync_with_stdio(false);
    44     int n,m;
    45     while(cin>>n>>m){
    46         for(int i=0;i<m;i++){
    47             cin>>a[i].x>>a[i].y;
    48         }
    49         sort(a,a+m,cmp1);
    50         float s=0;
    51         for(int i=0;i<m;i++){
    52             if(n>=(a[i].x)*(a[i].y)){
    53                 s+=a[i].y;
    54                 n-=(a[i].x)*(a[i].y);
    55             }
    56             else {
    57                 s+=(float)n/a[i].x;
    58                 n=0;
    59             }
    60             if(n==0) break;
    61         }
    62         printf("%.4f
    ",s);
    63     }
    64     return 0;
    65 }
  • 相关阅读:
    uniApp 滑动手势事件判定 支持NVUE
    按照指定数字 分割数组
    我引用中没有Spire.Pdf,但是发现无法解析的“Spire.Pdf”的不同版本之间存在冲突
    RedisUtil工具类
    Hutool操作excel
    Java 值传递与引用传递
    修改homestead中PHP cli版本
    VS2022 vs2022 servicehub.roslyncodeanalysisservice.exe 占用内存过高
    操作系统
    Spring Security BCryptPasswordEncoder 每次Hash出来的值都不同?
  • 原文地址:https://www.cnblogs.com/wydxry/p/7274182.html
Copyright © 2020-2023  润新知