杭电acm 5461 Largest Point
来源:互联网 发布:女朋友给前任口过知乎 编辑:程序博客网 时间:2024/06/03 20:40
Problem Description
Given the sequence A with n integers t1,t2,⋯,tn. Given the integral coefficients a and b. The fact that select two elements ti and tj of A and i≠j to maximize the value of at2i+btj, becomes the largest point.
Input
An positive integer T, indicating there are T test cases.
For each test case, the first line contains three integers corresponding to n (2≤n≤5×106), a (0≤|a|≤106) and b (0≤|b|≤106). The second line contains n integers t1,t2,⋯,tn where 0≤|ti|≤106 for 1≤i≤n.
The sum of n for all cases would not be larger than 5×106.
Output
The output contains exactly T lines.
For each test case, you should output the maximum value of at2i+btj.
Sample Input
2
3 2 1
1 2 3
5 -1 0
-3 -3 0 3 3
Sample Output
Case #1: 20
Case #2: 0
Given the sequence A with n integers t1,t2,⋯,tn. Given the integral coefficients a and b. The fact that select two elements ti and tj of A and i≠j to maximize the value of at2i+btj, becomes the largest point.
Input
An positive integer T, indicating there are T test cases.
For each test case, the first line contains three integers corresponding to n (2≤n≤5×106), a (0≤|a|≤106) and b (0≤|b|≤106). The second line contains n integers t1,t2,⋯,tn where 0≤|ti|≤106 for 1≤i≤n.
The sum of n for all cases would not be larger than 5×106.
Output
The output contains exactly T lines.
For each test case, you should output the maximum value of at2i+btj.
Sample Input
2
3 2 1
1 2 3
5 -1 0
-3 -3 0 3 3
Sample Output
Case #1: 20
Case #2: 0
题意分析:本题是一道网络赛水题,就是卡你对数据结构的灵活运用,刚开始用c++提交超时了,后来用G++交又过了,果然要看人品呀!
代码如下:
#include <iostream>#include <cstdio>#include <algorithm>using namespace std;int t;long long n,a,b;long long num[1000000];bool cmp1(long long a,long long b){ return a*a <= b*b;}int main(){ scanf("%d",&t); int kase = 1; while(t--) { scanf("%lld %lld %lld",&n,&a,&b); //int num[1000000]; for(int i=0;i<n;i++) { scanf("%lld",&num[i]); } long long t1 = 0,t2 = 0; sort(num,num+n,cmp1); if(a>0 && b>0) { t1 = num[n-1]; sort(num,num+n); t2 = num[n-1]; if(t1 == t2) t2 = num[n-2]; } else if(a>0 && b<0) { t1 = num[n-1]; sort(num,num+n); t2 = num[0]; if(t1 == t2) t2 = num[1]; } else if(a<0 && b>0) { t1 = num[0]; sort(num,num+n); t2 = num[n-1]; if(t1 == t2) t2 = num[n-1]; } else if(a<0 && b<0) { t1 = num[0]; sort(num,num+n); t2 = num[0]; if(t1 == t2) t2 = num[1]; } else if(a==0 && b!=0) { sort(num,num+n); if(b>0) t2 = num[n-1]; else t2 = num[0]; } else if(a!=0 && b==0) { if(a>0) t1 = num[n-1]; else t1 = num[0]; } printf("Case #%d: %lld\n",kase++,a*t1*t1+b*t2); } return 0;}
0 0
- 杭电acm 5461 Largest Point
- 杭电5461———Largest Point
- hdu 5461 Largest Point
- HDU 5461 Largest Point
- hdu 5461 Largest Point
- HDU 5461Largest Point
- HDU-5461 Largest Point
- hdu 5461 Largest Point
- HDU 5461:Largest Point
- hdu 5461 Largest Point
- HDU 5461 Largest Point
- hdoj-5461-Largest Point
- hdu 5461 Largest Point
- HDU 5461 Largest Point
- hdu 5461 Largest Point
- HDU 5461 Largest Point (水题)
- hdu 5461 Largest Point(水)
- hdu 5461 Largest Point 【贪心】
- get&set
- 关于Linux的进程和线程 http://kenby.iteye.com/blog/1014039
- ROS 通讯层模型
- 【Java并发编程实战】—–“J.U.C”:Semaphore
- Linux命令行简介
- 杭电acm 5461 Largest Point
- oracle的sqlldr的使用总结
- Struts2-数据回显、模型驱动等常用技术
- ThinkPHP-分页效果及自定义类文件引入框架
- 数据库访问性能优化
- 15_09_22 数组初始化时的错误
- 新手学习,web编程入门(一)——无从下手的困惑
- Android开发知识点
- 如何保证代码质量