关闭

poj-1852

454人阅读 评论(0) 收藏 举报
分类:

解题思路:

我们直接忽略蚂蚁的相遇事件,假设所有的蚂蚁即使相遇了也不会做出改变,仍然走自己的路。这样每一个蚂蚁掉落的时间就只有2个取值,一个是向左走的时间,一个是向右走的时间,全部掉落的最早时间是每只蚂蚁尽快掉落用时的最大值,因为这些蚂蚁现在互不干扰,同理,全部掉落的最迟时间就是每只蚂蚁尽量慢掉落用时的最大值。

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
	int n,l,m,a[110000],maxT,minT;
	cin>>n;			      //输入测试样例组数
	while(cin>>l>>m)
	{
		int maxT=0;minT=0;//每次都要重新清空为0! 
		for(int i=0;i<m;i++)
			cin>>a[i];
		//计算最长和最短时间 
		for(int i=0;i<m;i++)
		{
			maxT=max(maxT,max(a[i],l-a[i]));
			minT=max(minT,min(a[i],l-a[i]));
		}
		cout<<minT<<" "<<maxT<<endl;		

	}
	return 0;
	
	  
}


0
0
查看评论

POJ-1852

其实如果之前没有遇到过这种问题就是感到无从下手,本题实际不难。 模拟两只蚂蚁相遇的情景,就会发现其实他们是“保持原样交错而过继续前进”(如果不考虑蚂蚁的个体差异),这样就可以认为每只蚂蚁是独立运动的。由于没有给出蚂蚁的朝向问题,所以要求最短时间时:首先针对每只蚂蚁求出它到竿子两个端点的最小...
  • u014004144
  • u014004144
  • 2014-03-19 10:49
  • 253

poj-1852

转换思想  两只蚂蚁碰头反转时  相当于直接
  • u014427196
  • u014427196
  • 2014-10-24 00:53
  • 307

POJ-1852 ants

Ants Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 17728   Accepted: 7532 Desc...
  • PYLON_GCL
  • PYLON_GCL
  • 2017-04-25 19:27
  • 129

POJ-1852 Ants

#include #include #define maxn 1000000 int cm[maxn],cm1[maxn],cm2[maxn]; int time(int* cm,int k) { int x = 0; for(int i = 0;i < k; i++) ...
  • somniloquy_
  • somniloquy_
  • 2015-07-19 12:37
  • 189

POJ-1852(Ants)

POJ-1852(Ants)                                      ...
  • hpulw
  • hpulw
  • 2015-12-20 17:34
  • 234

ACM:POJ-1852 Ants

如果直接用暴力然后大数存储是可以的,但是由于每个蚂蚁都会有不确定的左右两个方向,那么最后当蚂蚁数量n足够大时,最后的时间无疑是指数级的,即2的n次幂。 所以需要考虑进一步的优化算法。 那么首先对于最短的时间,显然只需要每个蚂蚁直接往离它近的那一端走即可,这样的情况下是不会有蚂蚁相向而相遇的。 然...
  • qq_33545916
  • qq_33545916
  • 2016-04-05 23:33
  • 307

学习笔记-POJ-1852蚂蚁问题

Description 一支蚂蚁军队在长度为L厘米的横竿上走,每只蚂蚁的速度恒定,为1厘米/秒。当一只行走的蚂蚁到达模竿终点的时候,它就立即掉了下去;当两只蚂蚁相遇的时候,它们就调头,并开始往相反的方向走。我们知道蚂蚁在模竿上的原来的位置,但不知道蚂蚁行走的方向。请计算所有蚂蚁从模竿上掉下去的最早...
  • Node_Su
  • Node_Su
  • 2017-04-23 15:18
  • 362
    个人资料
    • 访问:129098次
    • 积分:3314
    • 等级:
    • 排名:第12094名
    • 原创:204篇
    • 转载:15篇
    • 译文:0篇
    • 评论:15条
    最新评论