热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LargestPointHDU5461

2018TYUT暑期ACM模拟赛(10)LargestPointHDU-5461思路:一个结构体直接保存t*t*a和t*b,利用两个比较函数将两个值分别

2018TYUT暑期ACM模拟赛(10)
Largest Point HDU - 5461
思路:一个结构体直接保存t*t*a和t*b,利用两个比较函数将两个值分别进行从小到大排序,保留最大的两位,如果id相同就找交叉相选最大的,id不同直接输出最大的两个值相加。

#include
#include
#include
using namespace std;
const int maxn=5*1e6+10;
typedef long long ll;
struct node
{ll val;ll va;ll vb;int id;
}s[maxn];
bool cmp1(node a,node b)
{return a.va>b.va;
}
bool cmp2(node a,node b)
{return a.vb>b.vb;
}
int main()
{int t,kcase=0;int a,b,n;scanf("%d",&t);while(t--){scanf("%d%d%d",&n,&a,&b);for(int i=0;iscanf("%lld",&s[i].val);s[i].va=s[i].val*s[i].val*a;s[i].vb=s[i].val*b;s[i].id=i;}node a1,a2,b1,b2;ll ans;sort(s,s+n,cmp1);//t*va//最大的a1=s[0];a2=s[1];sort(s,s+n,cmp2);b1=s[0];b2=s[1];if(a1.id!=b1.id) ans=a1.va+b1.vb;else{ans=max(a1.va+b2.vb,a2.va+b1.vb);}printf("Case #%d: ",++kcase);printf("%lld\n",ans);}return 0;
}

推荐阅读
author-avatar
手机用户2602897795
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有