zoukankan      html  css  js  c++  java
  • 解题报告:POJ1852 Ants

    原题链接:POJ1852

    解析:本题需要自己建立模型,思考算法。本题要求最后一只蚂蚁掉落的最小时间和最大时间,如果两只蚂蚁相遇,他们会掉头,但是我们可以将它们看作没有相遇。因为a遇到b后掉头,把a看作b,b看作a,就相当于b继续走,a也继续走,只是两只蚂蚁交换了而已,而我们不区别蚂蚁个体。

    错误报告:

    • 在求最大时间的时候,我一直在纠结于一只蚂蚁的行进路线,即它们相遇后回头,再相遇再回头。。。这样根本无从下口
    • 最后一只蚂蚁掉落的最短时间,是所有蚂蚁掉落最短时间中的最大时间
    • 用cin会超时,scanf则可以通过,可见像这种大数据还是尽量用scanf,甚至自写read函数

    代码示例:

    #include<iostream>
    #include<cstdio>
    using namespace std;
    const int inf = 2e9;
    int main()
    {
    	int t;
    	scanf("%d",&t);
    	while(t--){
    		int len,n;
    		scanf("%d%d",&len,&n);
    		int maxTime = -inf,minTime = -inf;
    		for(int i = 0;i < n;i++){
    			int p;
    			scanf("%d",&p);
    			maxTime = max(maxTime,max(p,len-p));
    			minTime = max(minTime,min(p,len-p));
    		}
    		printf("%d %d
    ",minTime,maxTime);
    	}
    	return 0;
    }
  • 相关阅读:
    OI中的小智慧
    洛谷 P2335 SDOI 2005 毒瘤 位图(也补上注释了)
    洛谷P4779 Dijkstra 模板
    洛谷 P1156 垃圾陷阱 谈论剪枝,非满分
    8/14考试 JWG
    一个好消息 JWG
    刷水题(一) JWG
    C语言运算符优先级从没像现在这样深刻体会
    cron 备忘
    CentOS
  • 原文地址:https://www.cnblogs.com/long98/p/10352188.html
Copyright © 2011-2022 走看看