hdu 5461 Largest Point 2015 ACM/ICPC Asia Regional Shenyang Online
2016-06-17 15:54
246 查看
这道题因为多写了几行memset就MLE了==。贪心分别保证at^2最大,b^t次大,at^2次大,b^t最大,最后选择max即可。
#include<iostream>
#include<stdio.h>
#include<cstdio>
#include<stdlib.h>
#include<vector>
#include<string>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<stack>
#include<queue>
#include<ctype.h>
#include<map>
#include<time.h>
//hdu 5461
using namespace std;
const int maxn=5*1e6+50;
int T;
int n;
long long a;
long long b;
//long long arrayt[maxn];
long long suma[maxn];
long long sumb[maxn];
long long compare(long long first[],long long second[])
{
int select=0;
//long long ret=0;
long long ma=first[0];//(long long)maxn * maxn * -1;//
for(int i=0;i<n;i++)
{
//long long tmp=suma[i];
if(ma<first[i])
{
ma=first[i];
select=i;
}
}
//ret=ma;
//ma=second[select==0?1:0];
long long mb=second[select==0?1:0];//(long long)maxn * maxn * -1;
for(int i=0;i<n;i++)
{
if(i==select) continue;
//long long tmp=sumb[i];
if(mb<second[i])
{
mb=second[i];
}
}
//ret+=ma;
return ma+mb;
}
//long long case2()
//{
// int select=0;
// long long ret=0;
// long long ma=sumb[0];
// for(int i=0;i<n;i++)
// {
// //long long tmp=sumb[i];
// if(ma<sumb[i])
// {
// ma=sumb[i];
// select=i;
// }
// }
// ret=ma;
// ma=suma[select==0?1:0];
// for(int i=0;i<n;i++)
// {
// if(i==select) continue;
// //long long tmp=suma[i];
// if(ma<suma[i])
// {
// ma=suma[i];
// }
// }
// ret+=ma;
// return ret;
//}
//long long case1()
//{
// int select=0;
// long long ret=0;
// long long ma=a*arrayt[0]*arrayt[0];
// for(int i=0;i<n;i++)
// {
// long long tmp=a*arrayt[i]*arrayt[i];
// if(ma<tmp)
// {
// ma=tmp;
// select=i;
// }
// }
// ret=ma;
// ma=b*arrayt[select==0?1:0];
// for(int i=0;i<n;i++)
// {
// if(i==select) continue;
// long long tmp=b*arrayt[i];
// if(ma<tmp)
// {
// ma=tmp;
// }
// }
// ret+=ma;
// return ret;
//}
//long long case2()
//{
// int select=0;
// long long ret=0;
// long long ma=b*arrayt[0];
// for(int i=0;i<n;i++)
// {
// long long tmp=b*arrayt[i];
// if(ma<tmp)
// {
// ma=tmp;
// select=i;
// }
// }
// ret=ma;
// ma=a*arrayt[select==0?1:0]*arrayt[select==0?1:0];
// for(int i=0;i<n;i++)
// {
// if(i==select) continue;
// long long tmp=a*arrayt[i]*arrayt[i];
// if(ma<tmp)
// {
// ma=tmp;
// }
// }
// ret+=ma;
// return ret;
//}
int main()
{
freopen("input.txt","r",stdin);
//cin>>T;//
scanf("%d",&T);
for(int ca=1;ca<=T;ca++)
{
//cin>>n>>a>>b;//
scanf("%d %I64d %I64d",&n,&a,&b);
long long t;
//memset(arrayt,0,sizeof(arrayt));
// memset(suma,0,sizeof(suma)); memset lead to MLE
// memset(sumb,0,sizeof(sumb));
for(int i=0;i<n;i++)
{
//scanf("%I64d",&arrayt[i]);
//cin>>t;
scanf("%I64d",&t);
suma[i]=a*t*t;
sumb[i]=b*t;
}
//printf("Case #%d: %I64d\n",ca,max(case1(),case2()));
//cout << "Case #" << ca << ": " << max(way(suma,sumb),way(sumb,suma)) << endl;
printf("Case #%d: %I64d\n",ca,max(compare(suma,sumb),compare(sumb,suma)));
}
return 0;
}
#include<iostream>
#include<stdio.h>
#include<cstdio>
#include<stdlib.h>
#include<vector>
#include<string>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<stack>
#include<queue>
#include<ctype.h>
#include<map>
#include<time.h>
//hdu 5461
using namespace std;
const int maxn=5*1e6+50;
int T;
int n;
long long a;
long long b;
//long long arrayt[maxn];
long long suma[maxn];
long long sumb[maxn];
long long compare(long long first[],long long second[])
{
int select=0;
//long long ret=0;
long long ma=first[0];//(long long)maxn * maxn * -1;//
for(int i=0;i<n;i++)
{
//long long tmp=suma[i];
if(ma<first[i])
{
ma=first[i];
select=i;
}
}
//ret=ma;
//ma=second[select==0?1:0];
long long mb=second[select==0?1:0];//(long long)maxn * maxn * -1;
for(int i=0;i<n;i++)
{
if(i==select) continue;
//long long tmp=sumb[i];
if(mb<second[i])
{
mb=second[i];
}
}
//ret+=ma;
return ma+mb;
}
//long long case2()
//{
// int select=0;
// long long ret=0;
// long long ma=sumb[0];
// for(int i=0;i<n;i++)
// {
// //long long tmp=sumb[i];
// if(ma<sumb[i])
// {
// ma=sumb[i];
// select=i;
// }
// }
// ret=ma;
// ma=suma[select==0?1:0];
// for(int i=0;i<n;i++)
// {
// if(i==select) continue;
// //long long tmp=suma[i];
// if(ma<suma[i])
// {
// ma=suma[i];
// }
// }
// ret+=ma;
// return ret;
//}
//long long case1()
//{
// int select=0;
// long long ret=0;
// long long ma=a*arrayt[0]*arrayt[0];
// for(int i=0;i<n;i++)
// {
// long long tmp=a*arrayt[i]*arrayt[i];
// if(ma<tmp)
// {
// ma=tmp;
// select=i;
// }
// }
// ret=ma;
// ma=b*arrayt[select==0?1:0];
// for(int i=0;i<n;i++)
// {
// if(i==select) continue;
// long long tmp=b*arrayt[i];
// if(ma<tmp)
// {
// ma=tmp;
// }
// }
// ret+=ma;
// return ret;
//}
//long long case2()
//{
// int select=0;
// long long ret=0;
// long long ma=b*arrayt[0];
// for(int i=0;i<n;i++)
// {
// long long tmp=b*arrayt[i];
// if(ma<tmp)
// {
// ma=tmp;
// select=i;
// }
// }
// ret=ma;
// ma=a*arrayt[select==0?1:0]*arrayt[select==0?1:0];
// for(int i=0;i<n;i++)
// {
// if(i==select) continue;
// long long tmp=a*arrayt[i]*arrayt[i];
// if(ma<tmp)
// {
// ma=tmp;
// }
// }
// ret+=ma;
// return ret;
//}
int main()
{
freopen("input.txt","r",stdin);
//cin>>T;//
scanf("%d",&T);
for(int ca=1;ca<=T;ca++)
{
//cin>>n>>a>>b;//
scanf("%d %I64d %I64d",&n,&a,&b);
long long t;
//memset(arrayt,0,sizeof(arrayt));
// memset(suma,0,sizeof(suma)); memset lead to MLE
// memset(sumb,0,sizeof(sumb));
for(int i=0;i<n;i++)
{
//scanf("%I64d",&arrayt[i]);
//cin>>t;
scanf("%I64d",&t);
suma[i]=a*t*t;
sumb[i]=b*t;
}
//printf("Case #%d: %I64d\n",ca,max(case1(),case2()));
//cout << "Case #" << ca << ": " << max(way(suma,sumb),way(sumb,suma)) << endl;
printf("Case #%d: %I64d\n",ca,max(compare(suma,sumb),compare(sumb,suma)));
}
return 0;
}
相关文章推荐
- linux下svn服务器搭建心得
- Win8系统无法完成更新提示错误代码800F0922的三种解决方法
- Android Studio 中快速提取方法
- Android-IPC机制【占坑中】
- Deep Learning(深度学习)之(四)Deep Learning学习资源
- spring代理模式 service远程调用,插件执行
- 查找数组中最大的两个数(Find two Largest Number)
- ORA-00059: maximum number of DB_FILES exceeded
- universalimageloader 最新版解析
- android listview系列之item的点击事件及item布局中的点击事件(四)
- 测试fragment生命周期
- 基于Bootstrap的UI扩展 StyleBootstrap
- 【软引用】弱引用 图片的加载与缓存 OOM
- hjr-SQL-MySQL入门
- 【NOI 2016模拟6.16】gene
- 谷歌的秘诀你学得会
- Android-屏幕适配方案【占坑中】
- mac下解决Android Studio Gradle Build Running 特别慢的问题
- java中非对称加密(RSA)的使用
- android双击图片放大,放大拖动的简单功能