简单问题
来源:互联网 发布:如何防范网络黑客攻击 编辑:程序博客网 时间:2024/05/17 06:14
简单问题
题目描述
给你一个n*m的矩阵,其中的元素每一行从左到右按递增顺序排序,每一列从上到下按递增顺序排序,然后给你一些数x,问这些书在不在这个矩阵中,若在,输出其列号最大的元素坐标。
输入
多组测试样例,首先两个数n,m(0<n,m<=1000)
然后n行m列的一个矩阵,其中的元素保证在32位整型范围
然后一个数cnt,表示询问数的个数(0<cnt<=100)
然后是cnt个要询问的元素
然后n行m列的一个矩阵,其中的元素保证在32位整型范围
然后一个数cnt,表示询问数的个数(0<cnt<=100)
然后是cnt个要询问的元素
输出
如果存在,输出其列号最大的元素坐标
否则,输出“NO”
否则,输出“NO”
样例输入
4 41 2 8 92 4 9 124 7 10 136 8 11 1537 8 14
样例输出
3 21 3NO
由题意知,每行从左往右是递增的,每列从上到下是递增的
因此,从第一行右边开始,若该元素大于要找的值,则左移;若该元素小于要找的值,则下移,继续按上述方法判断,若没有找到,则矩阵中不存在该元素,否则输出位置坐标
#include<iostream>#include<stdio.h>using namespace std;int a[1002][1001];int main(){int n,m,k,d;while(cin>>n>>m){for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)scanf("%d",&a[i][j]);scanf("%d",&k);while(k--){int flag=0,x=1,y=m;scanf("%d",&d);while(1){if(a[x][y]>d){y--;if(y<1){flag=1;break;}}else if(a[x][y]<d){x++;if(x>n){flag=1;break;}}elsebreak;}if(flag)cout<<"NO"<<endl;elsecout<<x<<" "<<y<<endl;}}return 0;}
0 0
- 简单问题
- 简单问题
- 简单问题
- 简单问题综合
- 简单的问题
- 一个简单的问题
- 原来问题如此简单
- 一个java简单问题
- 简单的通信问题
- 简单节点嵌套问题
- 一个简单的问题
- 简单java问题
- 简单点想问题
- 简单的问题
- 简单的约瑟夫问题
- 简单背包问题
- 汉诺塔问题简单探讨
- 简单的排列问题
- 贪吃蛇游戏的C语言实现
- Glide图片加载 使用的单例模式
- Java 服务器端修改apk并重新打包签名
- java读取文件的两种方法:java.io和java.lang.ClassLoader
- 从头开始安装Ubuntu,cuda,cudnn,caffe,tensorflow,ROS
- 简单问题
- 剑指Offer patitionArray
- 机器学习系列-------机器学习路线图(附资料)
- PE文件解析
- LeetCode题解:Kth Smallest Element in a BST
- hdu 1213 How Many Tables
- 利用SE16n 修改数据
- Pixhawk之前期准备
- spark , NoSuchMethodError: ConcurrentHashMap.keySet 和failed to connect to master的错