博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU5461 Largest Point(暴力)
阅读量:5261 次
发布时间:2019-06-14

本文共 1247 字,大约阅读时间需要 4 分钟。

这题第一眼就想到暴力。。

枚举每一个ti,就能确定tj,tj一定是剩下数最大或最小的。为了求tj就要求出数列最大最小次大次小。时间复杂度O(n)。

感觉暴力挺有趣的。

1 #include
2 #include
3 using namespace std; 4 __int64 arr[5500000]; 5 int main(){ 6 int t; 7 scanf("%d",&t); 8 for(int cse=1; cse<=t; ++cse){ 9 __int64 n,a,b;10 scanf("%I64d%I64d%I64d",&n,&a,&b);11 for(int i=1; i<=n; ++i){12 scanf("%I64d",arr+i);13 }14 15 __int64 max1=-1000001,max2=-1000001,min1=1000001,min2=1000001;16 int maxi,mini;17 for(int i=1; i<=n; ++i){18 if(max1
arr[i]) min1=arr[i], mini=i;20 }21 for(int i=1; i<=n; ++i){22 if(i!=maxi && max2
arr[i]) min2=arr[i];24 }25 26 __int64 res=a*arr[1]*arr[1]+b*arr[2];27 for(int i=1; i<=n; ++i){28 __int64 tmp=arr[i]*arr[i]*a;29 30 if(max1==arr[i]) res=max(res,tmp+max2*b);31 else res=max(res,tmp+max1*b);32 33 if(min1==arr[i]) res=max(res,tmp+min2*b);34 else res=max(res,tmp+min1*b);35 }36 printf("Case #%d: %I64d\n",cse,res);37 }38 return 0;39 }

 

转载于:https://www.cnblogs.com/WABoss/p/4852017.html

你可能感兴趣的文章
java定时器的使用(Timer)
查看>>
boost 同步定时器
查看>>
[ROS] Chinese MOOC || Chapter-4.4 Action
查看>>
简单的数据库操作
查看>>
Redmine
查看>>
帧的最小长度 CSMA/CD
查看>>
编程算法 - 左旋转字符串 代码(C)
查看>>
IOS解析XML
查看>>
Python3多线程爬取meizitu的图片
查看>>
树状数组及其他特别简单的扩展
查看>>
zookeeper适用场景:分布式锁实现
查看>>
110104_LC-Display(液晶显示屏)
查看>>
httpd_Vhosts文件的配置
查看>>
php学习笔记
查看>>
普通求素数和线性筛素数
查看>>
PHP截取中英文混合字符
查看>>
【洛谷P1816 忠诚】线段树
查看>>
电子眼抓拍大解密
查看>>
poj 1331 Multiply
查看>>
tomcat7的数据库连接池tomcatjdbc的25个优势
查看>>