BNUOJ34980方(芳)格(哥)取数(好坑)

2024-05-12 20:48
文章标签 取数 bnuoj34980

本文主要是介绍BNUOJ34980方(芳)格(哥)取数(好坑),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

方(芳)格(哥)取数

3000ms
65536KB
64-bit integer IO format:  %lld      Java class name:  Main
Prev  Submit  Status  Statistics  Discuss  Next
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\n",x,y);fflush(stdout);scanf("%d",&a);if(a==k){printf("YES\n");flag=1;fflush(stdout);break;}if(a>k)y--;else x++;if(x>n||y<=0)break;}if(flag==0)printf("NO\n"),fflush(stdout);}
    }
    


    这篇关于BNUOJ34980方(芳)格(哥)取数(好坑)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



    http://www.chinasem.cn/article/983697

    相关文章

    [Algorithm][综合训练][小葱的01串][小红的ABC][不相邻取数]详细讲解

    目录 1.小葱的01串1.题目链接2.算法原理详解 && 代码实现 2.小红的ABC1.题目链接2.算法原理详解 && 代码实现 3.不相邻取数1.题目链接2.算法原理详解 && 代码实现 1.小葱的01串 1.题目链接 小葱的01串 2.算法原理详解 && 代码实现 解法:滑动窗口 --> ⻓度固定的滑动窗⼝,要想符合要求,必定是⼀半⼀半的 选择区域的时候,仅需

    2014蓝桥杯本科B组 地宫取数 DP

    问题描述 X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。   地宫的入口在左上角,出口在右下角。   小明被带到地宫的入口,国王要求他只能向右或向下行走。   走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。

    hdu1569 方格取数(2) 二分图最大点权独立集

    题意:中文题。。 思路:首先根据横纵坐标之和的奇偶转化成二分图,对于( i , j )来说与它冲突的只有(i - 1 , j ) ( i , j - 1 ) ( i + 1 , j ) ( i  , j + 1 )4个方格, 奇偶性相反。如果i + j是奇数那么和周围4点连边,那么问题转化求所有点权和 - 该二分图的最小点权覆盖 。我们关注最小点权覆盖 模型,建立超级起点st,超级终点e

    HDU 1565 方格取数 题解

    【题目】: Problem Description 给你一个n*n的格子的棋盘,每个格子里面有一个非负数。 从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的和最大。 Input 包括多个测试实例,每个测试实例包括一个整数n 和n*n个非负数(n<=20) Output 对于每个测试实例

    【NOIP提高组】方格取数

    【NOIP提高组】方格取数 💖The Begin💖点点关注,收藏不迷路💖 设有N*N的方格图,我们将其中的某些方格填入正整数, 而其他的方格中放入0。 某人从图得左上角出发,可以向下走,也可以向右走,直到到达右下角。 在走过的路上,他取走了方格中的数。(取走后方格中数字变为0) 此人从左上角到右下角共走3次,试找出3条路径,使得取得的数总和最大。 输入: 第

    HDU1565方格取数(1)(状态压缩DP)

    方格取数(1) Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5530    Accepted Submission(s): 2094 Problem Description 给你一个n*n的格子的棋盘,每个格子里

    HDU 3657 Game 网络流 方格取数类型

    用模板就是爽! #include<cstdio>#include<cstring>#include<iostream>#include<iomanip>#include<queue>#include<cmath>#include<stack>#include<map>#include<vector>#include<set>#include<algorithm>usin

    网络流 方格取数类型题的总结 + HDU3820

    题目分析:最小割! 方格取数一类问题! 现在就这一类做一个小结吧。。。。 1.首先是方格内有固定的权值,可以取不相邻的数,问怎样取使权值最大。 这样我们奇偶建图,源点掌管奇属性点,汇点掌管偶属性点,然后相邻的两点建边容量无穷大,源汇向自己掌管的点建边,容量为权值。这样建图的意义在于,如果某一条边被割掉,那么久说明这个点被抛弃了(不选这个点),那么可不可能选到两个相邻的点?由于相邻

    算法编程中简单取数问题的总结

    问题:取出某个数的前面几位、后面几位、特定位数。 解决: 在取数时有两种操作:整除、取模 其中整除用来“删除”原数的后面几位。例如 134/10=13,1999/100=19。(在 python 中为 //) 总结:若要删除 n n n 的后 x x x 位,得到 y y y,则 y = ⌊ n 1 0 x ⌋ y=\lfloor \dfrac{n}{10^x} \rfloor y=

    P1123 取数游戏(dfs算法)

    题目描述 一个 N×M 的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻 8个格子中的一个即认为这两个数字相邻),求取出数字和最大是多少。 输入格式 第一行有一个正整数 T,表示了有 T 组数据。 对于每一组数据,第一行有两个正整数 N 和 M,表示了数字矩阵为 N 行 M 列。 接下来 N 行,每行 M 个非负整数,