c_cpp 矩阵二进制搜索

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 矩阵二进制搜索相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

int search (vector <int> v, int l, int r, int x){
    if (l<=r){
        int m=l+(r-l)/2;
        if (l==r && v[m]!=x)
            return -1;
        if (v[m]==x){
            return m+1;
        }
        if (v[m]>x){
            return search(v,l,m-1,x);
        }else {
            return search(v,m+1,r,x);
        }
    }else{
        return -1;
    }
}

vector< vector<int> > solve (vector < vector <int> > v, int x){
    vector < vector <int> > a(v.size());
    for (int i=0; i<v.size(); i++){
        a[i].push_back(search(v[i], 0, v[i].size()-1, x));
    }
    return a;
}

int main() {
    
	int t;
	cin>>t;
	while (t--){
	    int r, c, x;
	    cin>>r>>c>>x;
	    vector < vector <int> > v(r);
	    for (int i=0; i<r ;i++){
	        v[i].resize(c);
	    }
	    for (int i=0; i<r; i++){
	        for (int j=0; j<c; j++){
	            cin>>v[i][j];
	        }
	    }
	    vector < vector <int> > a = solve (v,x);
	    for (int i=0; i<a.size(); i++){
	        for (int j=0; j<a[i].size(); j++){
	            cout<<a[i][j]<<" ";
	        }
	        cout<<endl;
        }
	    }
	return 0;
}
	

以上是关于c_cpp 矩阵二进制搜索的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 700.在二进制搜索树中搜索

c_cpp 二进制搜索

c_cpp 二进制搜索

c_cpp 二进制搜索

c_cpp 二进制搜索

c_cpp 二进制搜索模板