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