2017.5 校内预选赛 第三题 ants poj1852

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017.5 校内预选赛 第三题 ants poj1852相关的知识,希望对你有一定的参考价值。

题目:

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的主要内容,如果未能解决你的问题,请参考以下文章

回文素数-2015校内选拔第三题

9.3校内训练

校内省选比赛D1

校内集训(20170910)

9.10 AHSOFNU校内模拟

20170910校内训练