zoukankan      html  css  js  c++  java
  • hdu 5461(2015沈阳网赛 简单暴力) Largest Point

    题目;http://acm.hdu.edu.cn/showproblem.php?pid=5461

    题意就是在数组中找出a*t[i]*t[i]+b*t[j]的最大值,特别注意的是这里i和i不能相等,想不到的是居然直接暴力排序都能过,而且这题的数据很水,好多有bug的代码都能过

    但是我们要对自己要求严一点,尽量吧各种情况考虑到位,如果下面的代码还有不妥,欢迎指正

     1 #include<cstdio>
     2 #include<cmath>
     3 #include<algorithm>
     4 using namespace std;
     5 typedef long long ll;
     6 ll max(ll x,ll y) {
     7     if (x>y) return x;
     8     else return y;
     9 }
    10 ll a[5000001];
    11 int main()
    12 {
    13     ll t,q,i,n,c,w,b,num1,num2;
    14     while (~scanf("%I64d",&t))
    15     {
    16         ll ans=1;
    17         while (t--){
    18         scanf("%I64d %I64d %I64d",&n,&c,&b);
    19         q=100000000;
    20         for (i=1;i<=n;i++)
    21             scanf("%I64d",&a[i]);
    22         sort(a+1,a+n+1);
    23         for (i=1;i<=n;i++)
    24             if (fabs(a[i])<q) q=fabs(a[i]),w=i;
    25         printf("Case #%I64d: ",ans++);
    26         if (c<0&&b<0)
    27         {
    28             if (w!=1) printf("%I64d
    ",c*a[w]*a[w]+b*a[1]);
    29             else
    30             {
    31                 num1=c*a[1]*a[1]+b*a[2];
    32                 num2=c*a[2]*a[2]+b*a[1];
    33                 printf("%d
    ",max(num1,num2));
    34             }
    35             continue;
    36         }
    37         else if (c>0&&b>0)
    38         {
    39             printf ("%I64d
    ",max(max(c*a[n]*a[n]+b*a[n-1], c*a[n-1]*a[n-1]+b*a[n]), c*a[1]*a[1]+b*a[n]));
    40             continue;
    41         }
    42         else if (c>=0&&b<=0)
    43         {
    44             printf ("%I64d
    ",max(max(c*a[n]*a[n]+b*a[1], c*a[1]*a[1]+b*a[2]), c*a[2]*a[2]+b*a[1]));
    45             continue;
    46         }
    47         else if (c<=0&&b>=0)
    48         {
    49             if (w!=n) printf("%I64d
    ",c*a[w]*a[w]+b*a[n]);
    50             else
    51             {
    52                 num1=c*a[n]*a[n]+b*a[n-1];
    53                 num2=c*a[n-1]*a[n-1]+b*a[n];
    54                 printf("%d
    ",max(num1,num2));
    55             }
    56             continue;
    57         }
    58         }
    59     }
    60     return 0;
    61 }
  • 相关阅读:
    struts2 委托spring代理action<转>
    Ajax中的时间戳应用<转>
    ajax的json传值方式
    单例HashTable例子
    eclipse修改vm页面JavaScript代码颜色
    Ajax表单异步提交及验证
    xml解析
    sql server 添加语句中,VALUES值需要从数据库中查询出来
    SQL substring、replace函数
    使用SQL语句操作数据库
  • 原文地址:https://www.cnblogs.com/JJCHEHEDA/p/4830083.html
Copyright © 2011-2022 走看看