zoukankan      html  css  js  c++  java
  • poj1852ant

    题意是这种,有一堆蚂蚁在一根棍子上乱爬。速度都是一样的,假设它们撞到了一起就会朝反方向爬去。
    把棍子长度告诉你。还有蚂蚁的数量以及它们某时的距离棍子左端的距离。要求全部蚂蚁都掉到棍子以下去
    的最小可能时间和最大可能时间。
    我是这样做的。


    暴力就能够了。


    话说,蚂蚁相撞就反过头爬,跟相撞之后继续往前爬的效果是一样的,于是乎就当做蚂蚁都是在一根独立的棍子上
    自己爬自己的路好了。
    无论是最小时间还是最大时间的,都是由某仅仅距离棍子左端或右端最远的蚂蚁决定。
    把它找出来就好了。


    我找它的方法是在读入蚂蚁位置的时候,推断每仅仅蚂蚁距离左端和右端的距离。
    选择最小的那个距离作为每仅仅蚂蚁的距离,再选择这些距离中最大的那仅仅蚂蚁就是要找的那仅仅蚂蚁了,它决定了最小时间。


    同理,选择最大的那个距离作为每仅仅蚂蚁的距离。再选择这些距离中最大的那仅仅蚂蚁就是要找的那仅仅蚂蚁了,它决定了最大时间。

    我的AC代码例如以下:

    #include<iostream>
    #include<algorithm>
    using namespace std;
    int main()
    {
    	int exp,len,num,ant,mi,ma;
    	scanf("%d",&exp);
    	while(exp--)
    	{
    		mi=ma=-1;
    		scanf("%d%d",&len,&num);
    		while(num--)
    		{
    			scanf("%d",&ant);
    			mi=max(mi,min(ant,len-ant));
    			ma=max(ma,max(ant,len-ant));
    		}
    		printf("%d %d
    ",mi,ma);
    	}
    }


     

  • 相关阅读:
    hdu 6435 Problem J. CSGO 最长曼哈顿距离+二进制枚举
    UVA11419 SAM I AM 二分图最小点覆盖
    数论入门基础整理
    [算法导论]#1 摊还分析
    [转载]markown语法
    [AC自动机]玄武密码
    [学习笔记]AC自动机
    分火腿
    [学习笔记]二分与分治
    [学习笔记]二项式反演
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/7118204.html
Copyright © 2011-2022 走看看