HDU ACM 2233 机器人的旅行

来源:互联网 发布:怎么用dw装修淘宝店铺 编辑:程序博客网 时间:2024/04/30 04:52

分析:分别按正方向和反方向进行处理,最终去最大值。感觉测试数据有些谁,居然没有TL

#include<iostream>#include<algorithm>#include<cmath>using namespace std;int point[100002];#define INF 0x7fffffffint process(int n,int t){int sum,tmp,max1,max2,tt;int i,j;sort(point,point+n);       //对点进行排序tt=0;sum=0;max1=-INF;for(i=0;i<n;i++)        //以正方向为主要方向进行考虑{if(point[i]>=0 && point[i]<=t){tt++;sum=tt;tmp=t-point[i];for(j=n-1;j>=0;j--)if(point[j]<0 && abs(2*point[j])<=tmp) //2*point[j]正反两次sum++;}if(max1<sum)   //找到最大的summax1=sum;}tt=0;max2=-INF;sum=0;for(i=n-1;i>=0;i--)        //以负方向为主要方向进行考虑{if(point[i]<=0 && abs(point[i])<=t){tt++;sum=tt;tmp=t-abs(point[i]);for(j=0;j<n;j++)if(point[j]>0 && 2*point[j]<=tmp) //2*point[j]正反两次sum++;}if(max2<sum)   //找到最大的summax2=sum;}return max1>max2?max1:max2;}int main()      {int n,t,i;ios::sync_with_stdio(false);while(cin>>n>>t){for(i=0;i<n;i++)cin>>point[i];cout<<process(n,t)<<endl;}    return 0;      }


0 0
原创粉丝点击