• HDU 5523:Game


    Game

     Time Limit: 2000/1000 MS (Java/Others)
     
     Memory Limit: 131072/131072 K (Java/Others)
    问题描述
    XY在玩一个游戏:有N根柱子排成一排,编号为1到N,每个柱子上面有一块宝石,现在XY站在第S根柱子上,出口在第T跟柱子上,XY需要拿到所有宝石后从出口离开。每次XY可以走到相邻的柱子上,也可以使用超能力跳到第一根柱子或者第N根柱子上,如果离开了柱子之后再也不能到达这里。为了节省能量,XY想用最少次数超能力通关。
    输入描述
    输入有多组数据,不超过1000组.
    每组数据输入一行包含3个整数,N,S和T.(1leq Nleq10000,1leq S,Tleq N )(1N10000,1S,TN)
    输出描述
    对于每组数据输出一行,表示使用超能力的最少次数,如果不可能离开,输出-1.
    输入样例
    4 1 4
    4 1 3
    
    输出样例
    0
    1

    这周末BC玩得。。。rating直接掉了150.。。实在是不想吐槽自己了。。。

    无解的情况只有起点和终点位置一样且N不为1。终点和起点都在边界上答案为0,如果起点在边界上或者起点终点相邻答案为1,其他答案为2.

    代码:

    #include <iostream>  
    #include <algorithm>  
    #include <cmath>  
    #include <vector>  
    #include <string>  
    #include <cstring>  
    #pragma warning(disable:4996)  
    using namespace std;
    
    int n, s, t;
    
    int main()
    {
        //freopen("i.txt", "r", stdin);
        //freopen("o.txt", "w", stdout);
    
        while (scanf("%d%d%d", &n, &s, &t) != EOF)
        {
            if(n==1)
                printf("0
    ");
            else if (s == t)
                printf("-1
    ");
            else if (t == n)
            {
                if (s == 1)
                    printf("0
    ");
                else if (abs(s - t) == 1)
                    printf("1
    ");
                else 
                    printf("2
    ");
            }
            else if (t == 1)
            {
                if (s == n)
                    printf("0
    ");
                else if (abs(s - t) == 1)
                    printf("1
    ");
                else
                    printf("2
    ");
            }
            else if (s == 1)
            {
                printf("1
    ");
            }
            else if (s == n)
            {
                printf("1
    ");
            }
            else if(abs(s-t)==1)
            {
                printf("1
    ");
            }
            else
            {
                printf("2
    ");
            }
        }
        //system("pause");
        return 0;
    }



    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    MongoDB构架图分享
    如何打印一个对象
    使用thrift进行跨语言调用(php c# java)
    MySQL 数据类型
    海量存储(转)
    Redis文章链接
    关于ActiveMQ的配置
    MySQL TIPS
    如何得到一个随机密码
    MySQL VS Oracle
  • 原文地址:https://www.cnblogs.com/lightspeedsmallson/p/4928103.html
Copyright © 2020-2023  润新知