Largest Point

Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 702    Accepted Submission(s):
293

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

题意:给三个数n,a,b,接下来给出n个数的数列,从数列中找到ti和tj使a*ti*ti+b*tj最大且ti不能等于tj

题解:分别考虑a和b的正负情况,如果a<0则求数组中绝对值最小的为ti如果a>0则求数组中绝对值最大的为ti,如果b<0则求数组中最小的为tj如果b>0则求数组中最大的为tj;注意求出ti后将这个位置标记

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
#include<stack>
#define INF 0x7ffffff
#define MAX 5000010
#define LL long long
using namespace std;
int s[MAX];
int vis[MAX];
int main()
{
int t,k,n,m,j,i,p;
int a,b;
LL mina,maxb,maxa,minb,sum,M,N;
scanf("%d",&t);
k=0;
while(t--)
{
scanf("%d%d%d",&m,&a,&b);
memset(vis,0,sizeof(vis));
for(i=0;i<m;i++)
scanf("%d",&s[i]);
sum=0;
mina=minb=INF;maxa=maxb=-INF;
N=M=0;
if(a<0)
{
for(i=0;i<m;i++)
if(mina>abs(s[i]))
{
mina=abs(s[i]);
p=i;
}
M=a*mina*mina;
vis[p]=1;
}
else if(a>0)
{
for(i=0;i<m;i++)
if(maxa<abs(s[i]))
{
maxa=abs(s[i]);p=i;
}
vis[p]=1;
M=a*maxa*maxa;
}
if(b<0)
{
for(i=0;i<m;i++)
if(minb>s[i]&&!vis[i])
minb=s[i];
N=b*minb;
}
else if(b>0)
{
for(i=0;i<m;i++)
if(maxb<s[i]&&!vis[i])
maxb=s[i];
N=b*maxb;
}
sum=N+M;
printf("Case #%d: %lld\n",++k,sum);
}
return 0;
}

  

hdoj 5461 Largest Point的更多相关文章

  1. hdu 5461 Largest Point 暴力

    Largest Point Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid= ...

  2. hdu 5461 Largest Point

    Thinking about it: 对于式子 a * ti * ti + b * tj,可以看作时有两部分构成 a * ti * ti 和 b * tj,如果整个式子要最大,则要求这两部分都要尽量大 ...

  3. $2019$ 暑期刷题记录1:(算法竞赛DP练习)

    $ 2019 $ 暑期刷题记录: $ POJ~1952~~BUY~LOW, BUY~LOWER: $ (复杂度优化) 题目大意:统计可重序列中最长上升子序列的方案数. 题目很直接的说明了所求为 $ L ...

  4. HDOJ(HDU) 2136 Largest prime factor(素数筛选)

    Problem Description Everybody knows any number can be combined by the prime number. Now, your task i ...

  5. hdu 5461(2015沈阳网赛 简单暴力) Largest Point

    题目;http://acm.hdu.edu.cn/showproblem.php?pid=5461 题意就是在数组中找出a*t[i]*t[i]+b*t[j]的最大值,特别注意的是这里i和i不能相等,想 ...

  6. HDU 5461:Largest Point

    Largest Point Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...

  7. 【HDOJ】1506 Largest Rectangle in a Histogram

    Twitter还是Amazon拿这个题目当过面试题.DP区间求面积. /* 1506 */ #include <cstdio> #include <cstring> #incl ...

  8. HDOJ 1238 Substrings 【最长公共子串】

    HDOJ 1238 Substrings [最长公共子串] Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Ja ...

  9. Java 特定规则排序-LeetCode 179 Largest Number

    Given a list of non negative integers, arrange them such that they form the largest number. For exam ...

随机推荐

  1. Mac苹果电脑加密视频播放器使用教程

    1.   下载文件 https://pan.baidu.com/s/1slhFYuL 2.    操作流程 温馨提示 播放时,请务必保证播放设备联网(原因:用户名权限验证需要网络,播放后10秒即可关闭 ...

  2. IE6背景图片闪动问题

    在IE6中,当JS触发事件时或者hover的时候,如果网速过慢 IE6背景图片重新加载会闪一下. 好的一个解决方案是 <!--[if IE 6]><script> try{do ...

  3. javascript获取url参数的方法

    发布:thatboy   来源:Net     [大 中 小] 本文介绍下,在javascript中取得url中某一个参数的方法,这里分享一个小例子,供大家学习参考下.本文转自:http://www. ...

  4. php中文编码

    header("Content-type: text/html; charset=utf-8"); header('Location: http://www.example.com ...

  5. EntityFramework动态组合多排序字段

    前言:在使用EF当中,肯定会遇到动态查询的需求,建立一个公共调用的动态组合表达式查询也是必不可少的,以下是建立动态组合多排序字段做个记录,供以后调用 1.建立一个结构,用于多个排序字段组合,这个结构体 ...

  6. linux线程(一)基本应用

    有感而发(可以直接忽略~):每次要用到线程,都要在网上重新学下基础,例子倒是不少:一种是排版好,讲的不全又不是自己想要的:一种是排版不好,直接略过了.两者兼有的又要苦苦寻找,所以还是自己总结了,觉得每 ...

  7. 百度预测 及 maven pom搜索地址

    http://trends.baidu.com/ http://mvnrepository.com/artifact/net.sourceforge.htmlcleaner/htmlcleaner/2 ...

  8. hbase rowkey设计的注意事项

    充分利用有序性 1.1 如果要scan操作,且不是很频繁,可以利用rowkey的有序性将需要一起扫描的数据放到一起.例如直接用时间戳.这样就可以按时间scan了.这个只要是简单的全表扫描都行. 1.2 ...

  9. spring 属性配置细节

    1.使用构造器注入属性值可以指定参数的位置和参数的类型!以区分重载的构造器.例如:<constructor-arg value="" type="java.lang ...

  10. Hibernate 注解时 hibernate.hbm.xml的配置方法 以及与SSH整合里的配置方式

    ①纯Hibernate开发: 当你在Bean中写入注解后,需要告诉hibernate哪些类使用了注解. 方法是在hibernate.hbm.xml文件中配置 <!DOCTYPE hibernat ...