zoukankan      html  css  js  c++  java
  • 洛谷 P2694 接金币

    题目描述

    在二维坐标系里,有N个金币,编号0至N-1。初始时,第i个金币的坐标是(Xi,Yi)。所有的金币每秒向下垂直下降一个单位高度,例如有个金币当前坐标是(xf, yf),那么t秒后金币所在的位置就是(xf, yf-t)。初始时,FJ在(0,0)坐标处,FJ每秒只能向左移动一个单位距离或者向右移动一个单位距离,当然FJ也可以不移动。如果在某个时刻某个金币和FJ所在的位置重合,那么FJ就能接住这个金币。FJ能否把所有的金币都接住?如果行输出Abletocatch,否则输出Notabletocatch。

    输入输出格式

    输入格式:

     

    多组测试数据。

    第一行,一个整数G,表示有G组测试数据。1 <= G <= 5。

    每组测试数据格式如下:

    第一行,一个整数N。 1 <= N <= 50。

    接下来有N行,第i行两个整数表示Xi、Yi。

      -1000<=Xi<=1000。0<=Yi<=1000。

     

    输出格式:

     

    共G行,每行输出Abletocatch或Notabletocatch。

     

    输入输出样例

    输入样例#1: 复制
    5
    3
    -1 1
    1 3
    0 4
    1
    -3 2
    3
    -1 1
    1 2
    0 4
    3
    0 9
    -1 1
    1 3
    8
    70 141
    -108 299
    52 402
    -70 280
    84 28
    -29 363
    66 427
    -33 232
    思路:数学+模拟
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int T,n,flag;
    int x[55],y[55];
    int main(){
        scanf("%d",&T);
        while(T--){
            scanf("%d",&n);
            flag=0;x[0]=0;y[0]=0;
            for(int i=1;i<=n;i++)    scanf("%d%d",&x[i],&y[i]);
            for(int i=0;i<=n;i++){
                for(int j=i+1;j<=n;j++){
                    if(abs(x[i]-x[j])>abs(y[i]-y[j])){
                        cout<<"Notabletocatch"<<endl;
                        flag=1;break;
                    }
                }
                if(flag)    break;
            }
            if(flag)    continue;
            else cout<<"Abletocatch"<<endl;
        }
    }
     
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    Spring Boot第四弹,一文教你如何无感知切换日志框架?
    Spring Boot 第三弹,一文带你了解日志如何配置?
    UVa 1625
    UVa 11584
    UVa 11400
    UVa 12563
    UVa 116
    UVa 1347
    UVa 437
    UVa 1025
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7892476.html
Copyright © 2011-2022 走看看