zoukankan      html  css  js  c++  java
  • 好水的一道题——蚂蚁

    先来链接:https://www.cnblogs.com/liuyuhao040610/p/11252536.html

    OK,为什么说他水先看代码。

     1 #include <cstdio>
     2 #include <algorithm>
     3 using namespace std;
     4 int main(){
     5     //freopen("a.in","r",stdin);
     6     int t;scanf("%d",&t);
     7     while(t--){
     8         int n,m;scanf("%d%d",&n,&m);
     9         int Min=0,Max=0;
    10         for(int i=1;i<=m;i++){
    11             int x;scanf("%d",&x);
    12             Max=max(Max,max(x,n-x));
    13             Min=max(Min,min(x,n-x));
    14         }
    15         printf("%d %d
    ",Min,Max);
    16     }
    17     return 0;
    18 } 

    有没有一种初学者的感受。哈哈哈哈哈哈哈。

    OK,下面是分析:

    我们先看题:这里是说每只蚂蚁互相碰到后就会掉头,然后每只蚂蚁间持续这样,直到它们都掉下去,我们想一想,两只蚂蚁碰头后又返回,不就像互相继承了对方的方向吗???

    OK,看图就明白了。

    呵呵,是不是很形象。

    我们可以这样形象的理解:蚂蚁一和蚂蚁二身体是中空的,它们互相穿过了对方,只不过交换了对方的名号而已,,,

    其实,说了这么多,我只是想让你想明白一点:

    蚂蚁都是一样的,所以当两只蚂蚁相遇时转向跟没转向也是一样的,因为每只蚂蚁都会继承另一只蚂蚁的方向,所以可以视为蚂蚁方向没有变过,所以最短时间就是所有蚂蚁距端点最近距离的最大值,最长时间就是所有蚂蚁距端点最远距离的最大值。

    OK,此题完结。

  • 相关阅读:
    使用Mongodb存放文件系统的离线栅格数据,供Cesium访问
    Moogose的基本连接以及增删改查操作
    MongoDB
    Linq对列表进行分组,求和,排序
    ArcEngine对属性表的操作
    ArcEngine打开GDB,SHP的方法
    javaweb之JSP+Servlet
    node.js后端之sequelize
    javascript的闭包
    LeetCode 第133场周赛总结
  • 原文地址:https://www.cnblogs.com/DZN2004/p/12694202.html
Copyright © 2011-2022 走看看