• 考试T1护花


    传送门

    这题的提议似乎有什么问题,只要约翰选好了要抓那头牛,他就不会吃草了,站在原地傻等?

    这题就是贪心,但在用cmp中比较单位时间吃草数量时,要用double型,不然可能会有点一样。。。

    还有就是主要的思路


    设x,y是两头牛,如果后送y牛损失的花少于后送x牛损失的花

    即x.t*x.d+(x.t+y.t)*y.d<=y.t*y.d+(x.t+y.t)*x.d

    打开可化简为x.t*y.d<=y.t*x.d

    ∴x.d/x.t>=y.d/y.t时选择先送x牛

    所以按每头牛吃的花和时间的比从大到小排序的顺序处理就好啦

     1 #include<cstdio>
     2 #include<algorithm>
     3 #define Maxn 100001
     4 struct hhh{int d,t;}cow[Maxn];
     5 bool cmp(hhh x,hhh y){return (float)x.d/(float)x.t>=(float)y.d/(float)y.t;}
     6   
     7 long long ans,T;
     8 int n;
     9 int main()
    10 {
    11     scanf("%d",&n);
    12     for(int i=1;i<=n;i++)    scanf("%d %d",&cow[i].t,&cow[i].d);
    13     std::sort(cow+1,cow+1+n,cmp);
    14     for(int i=1;i<=n;i++)
    15     {
    16         ans+=T*cow[i].d;
    17         T+=cow[i].t*2;
    18     }
    19     printf("%lld",ans);
    20     return 0;
    21 }

     据说不用std标准库,而在使用时用std::不仅高端大气上档次,还会快一点。。。

  • 相关阅读:
    Eclipse 的SVN 插件
    linux克隆后修配置
    SVN服务器端环境搭建步骤
    Linux安装 jdk、tomcat、eclipse、mysql
    Linux RPM和YUM
    linux进程管理
    day21
    day20
    day18 作业
    day 19
  • 原文地址:https://www.cnblogs.com/2529102757ab/p/11122645.html
Copyright © 2020-2023  润新知