码迷,mamicode.com
首页 > 其他好文 > 详细

2017.5 校内预选赛 第三题 ants poj1852

时间:2017-05-28 11:50:14      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:problem   img   poj   nbsp   stream   div   ant   for   点子   

题目:

http://poj.org/problem?id=1852

 

只要想到点子上,很简单。

技术分享

以第一个栗子来解释:

10 3

2 6 7

按照题意 A B 相遇则A B 改变方向,其实可以看作A和B相遇穿过继续运动。

这样就最短时间 只要找到每个蚂蚁到一端的最短时间,然后找出其中的最大值

例如最短时间分别对应 2 4 3

所以结果为4

最长时间 就只要找出每个点的最长时间然后取最大值

 

代码如下(能够ac):

 

#include<iostream>
using namespace std;

int main(){
    int t;
    cin>>t;
    for(int i=1;i<=t;i++){
        int n,m;
        cin>>n>>m;
        int small=0,max=0;
        for(int j=0;j<m;j++){
            int num;
            cin>>num;
            int temp;
            temp=n-num>num ? num : n-num;
            if(small<temp) small=temp;
            
            temp=num>n-num ? num : n-num;
            if(max<temp) max=temp;        
        }
        
        cout<<small<<" "<<max<<endl; 
    }
} 

 

注意不要使用数组保存每个蚂蚁的位置,因为m最大为1000000,开不了这么大的数组。

2017.5 校内预选赛 第三题 ants poj1852

标签:problem   img   poj   nbsp   stream   div   ant   for   点子   

原文地址:http://www.cnblogs.com/kapike/p/6915295.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!