zoukankan      html  css  js  c++  java
  • BNUOJ34980方(芳)格(哥)取数(好坑)

    方(芳)格(哥)取数

    3000ms
    65536KB
    64-bit integer IO format: %lld      Java class name: Main
    Font Size:  
    Type:   

    师大有三宝,妹子真不少,芳姐or芳哥,认路本领好!

    众所周知,师大的芳哥带队本领高强。被众粉丝尊称为“地图”!芳哥对随意时刻,随意地点。随意地形都驾轻就熟,比方校园。密室,KTV。地铁,机场,山间。田野,丘陵等等等等。

    嗯,有一天芳哥带着小伙伴来到一片丘陵,这片丘陵广袤无垠,层峦叠嶂,就像一个二维数组的样子。于是芳哥花了0.2333秒记住了这片土地。

    芳姐将这片丘陵分为N*M个区域,然后她记住了每一个区域的海拔。厉害吧~并且芳哥发现一个有趣的地方,就是对于同一个纬度,东边总是比西边高;对于同一个经度,南边总是比北边高

    晚上在芳哥清点人数时发现小胖不见了,赶紧打电话给小胖,小胖也不知道自己如今在哪儿,仅仅知道自己如今所在位置的海拔为K。芳哥太操心小胖以至于不能思考了,于是推断小胖是否还在这片丘陵的任务就落到了你的头上。值得欣慰的是。芳姐最多还能回答你N+M次询问,你能够询问她X,Y这个坐标的海拔是多少。假设你发现某个位置的海拔恰好等于小胖所在的海拔,那么你就觉得小胖还在这片丘陵。

    假设你发现小胖还在这片丘陵,输出YES,否则输出NO。假设你没在限定的次数内推断出来。芳哥让我给你一个WA。

    Input

    首先是一个整数T(T<=50),表示数据组数。

    每组数据首先是三个整数N, M(1 <= N, M <= 1000), K(int范围),表示矩阵行数、列数和小胖所在的海拔。

    然后对于你的程序的每一个询问,结果也会作为输入返回,保证询问结果都在int内。

    Output

    在确定答案之前,每行输出一个询问,为两个整数X,Y,用空格隔开。表示询问A[X][Y]这个数是多少。

    当你的程序可以推断结果时,依照题意输出一行结果 “YES” 或 “NO”(引號作为强调)。假设答案正确将直接进入下一组数据。否则本次提交结果为WA。

    注意不合法的询问或推断将直接导致WA、RE或TLE。

    Hint

    比方这片丘陵是这个样子的:

    大小为4 x 3

    1       9       99

    2       19     100

    30     300  3000

    99     999  9999

    假设小胖告诉你他所在的海拔为300。一种可能推断步骤例如以下:

    询问1 2

    芳哥告诉你9

    询问4 3

    芳哥告诉你9999

    询问3 2

    芳哥告诉你300

    这时你能够推断小胖还在这片丘陵上。

    输出YES就可以。

    注意:二维数组的下标从1開始。

    ===============================

    特别鸣谢Liserious赞助题目名。

    ===============================

    特别注意:

    对于C/C++选手,请在每一个输出后加上fflush(stdout);

    对于JAVA选手,请在每一个输出后加上System.out.flush();

    对于Python选手,请在每一个输出后加上sys.stdout.flush()。须要import sys。

    对于Pascal选手,请在每一个输出后加上Flush(StdOut)。或者使用writeln()来输出。

    Source

    Author

    zhaoli
    #include<stdio.h>
    #include<stdlib.h>
    int n,m,k,t,nm,x,y,flag,a;
    int main()
    {
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d%d%d",&n,&m,&k);
            nm=n+m; flag=0;
            x=1,y=m;//这样一定能够推断k是否在里面
            while(nm)
            {
                nm--;
                printf("%d %d
    ",x,y);fflush(stdout);
                scanf("%d",&a);
                if(a==k)
                {
                    printf("YES
    ");flag=1;fflush(stdout);
                    break;
                }
                if(a>k)y--;
                else x++;
                if(x>n||y<=0)break;
            }
            if(flag==0)printf("NO
    "),fflush(stdout);
        }
    }
    


  • 相关阅读:
    HTML area coords 属性
    在Java中,替换字符串String中特定索引处的字符char?
    JavaScript 之 history对象
    JavaScript 之 location 对象
    JavaScript 之 定时器
    JavaScript 之 页面加载事件
    JavaScript 之 对话框
    JavaScript 之 BOM
    Java 之 可变参数
    Java 之 LinkedHashSet 集合
  • 原文地址:https://www.cnblogs.com/yfceshi/p/6955909.html
Copyright © 2011-2022 走看看