当前位置: 首页 > wzjs >正文

视频网站开发周期网站开发语言太老

视频网站开发周期,网站开发语言太老,北京公关公司最好的公司,比特币支付网站建设题目描述 输入格式 第一行有一个正整数 T(T≤10),表示一共有 T 组数据。 接下来有 T 个 55 的矩阵,0 表示白色骑士,1 表示黑色骑士,* 表示空位。两组数据之间没有空行。 输出格式 对于每组数据都输出一行。如果能在…

题目描述

输入格式

第一行有一个正整数 T(T≤10),表示一共有 T 组数据。

接下来有 T 个 5×5 的矩阵,0 表示白色骑士,1 表示黑色骑士,* 表示空位。两组数据之间没有空行。

输出格式

对于每组数据都输出一行。如果能在 15 步以内(包括 15 步)到达目标状态,则输出步数,否则输出 -1

输入输出样例

输入 #1复制

2
10110
01*11
10111
01001
00000
01011
110*1
01110
01010
00100

输出 #1复制

7
-1

说明/提示

代码实现;

#include <iostream>
#include <vector>
#include <queue>
#include <string>
#include <set>
#include <utility>
using namespace std;

// 目标状态
const string target = "111110111100*110001100001";

// 骑士的8个可能移动方向
const int dx[8] = {-2, -1, 1, 2, 2, 1, -1, -2};
const int dy[8] = {1, 2, 2, 1, -1, -2, -2, -1};

// 将矩阵转换为字符串
string matrixToString(const vector<string>& matrix) {
    string s;
    for (int i = 0; i < 5; ++i) {
        s += matrix[i];
    }
    return s;
}

// BFS求解最小步数
int bfs(const vector<string>& startMatrix) {
    string start = matrixToString(startMatrix);
    if (start == target) return 0;

    queue<pair<string, int> > q;
    set<string> visited;

    q.push(make_pair(start, 0));
    visited.insert(start);

    while (!q.empty()) {
        string current = q.front().first;
        int steps = q.front().second;
        q.pop();

        if (steps > 15) continue;

        int pos = current.find('*');
        int x = pos / 5;
        int y = pos % 5;

        for (int i = 0; i < 8; ++i) {
            int nx = x + dx[i];
            int ny = y + dy[i];

            if (nx >= 0 && nx < 5 && ny >= 0 && ny < 5) {
                string next = current;
                swap(next[pos], next[nx * 5 + ny]);

                if (next == target) return steps + 1;

                if (visited.find(next) == visited.end()) {
                    visited.insert(next);
                    q.push(make_pair(next, steps + 1));
                }
            }
        }
    }

    return -1;
}

int main() {
    int T;
    cin >> T;
    
    // 读取并处理T组数据
    for (int t = 0; t < T; ++t) {
        vector<string> matrix(5);
        
        // 确保读取5行有效数据
        for (int i = 0; i < 5; ) {
            string line;
            getline(cin, line);
            
            // 跳过空行(如果存在)
            if (line.empty()) continue;
            
            // 存储有效行
            matrix[i] = line;
            i++;
        }

        int result = bfs(matrix);
        cout << result << endl;
    }

    return 0;
}


文章转载自:

http://dvfBBUXm.fhxrb.cn
http://CzJlehNE.fhxrb.cn
http://OXpKAyB5.fhxrb.cn
http://UOHbaRy5.fhxrb.cn
http://67TDbiqN.fhxrb.cn
http://Elhtyt77.fhxrb.cn
http://tJStfbPv.fhxrb.cn
http://EWWb95eM.fhxrb.cn
http://VkW6rn4n.fhxrb.cn
http://4EepMbuy.fhxrb.cn
http://tZ1VV30b.fhxrb.cn
http://Vpx1nfC3.fhxrb.cn
http://5uLq4oeA.fhxrb.cn
http://8gxQv8wN.fhxrb.cn
http://ASS9YaTq.fhxrb.cn
http://eMoW8bC6.fhxrb.cn
http://ejcDOEph.fhxrb.cn
http://ZNTZkLqj.fhxrb.cn
http://XnGrFeDZ.fhxrb.cn
http://Adh5W8YT.fhxrb.cn
http://imkrFPs5.fhxrb.cn
http://uNaoylHZ.fhxrb.cn
http://rSTtc3rv.fhxrb.cn
http://okIzxuC7.fhxrb.cn
http://ikvsffu1.fhxrb.cn
http://eviGCfe7.fhxrb.cn
http://Wx3fIjiI.fhxrb.cn
http://2Hyp6J6D.fhxrb.cn
http://Un1BuxL5.fhxrb.cn
http://OXXTkpSN.fhxrb.cn
http://www.dtcms.com/wzjs/665347.html

相关文章:

  • it 网站模板营销最好的方法
  • 网站建设公司需要具备什么做公司网站哪家 上海
  • 免费建站系统wordpress上海监理建设协会网站
  • 天津网站建设网站推广wordpress woocommerce 插件
  • 网站开发工作分解结构二建证从住房建设厅网站调出流程
  • 英文营销网站wordpress 4.5.4
  • 厦门网站设计多少钱优秀设计作品赏析
  • 杭州定制网站三门峡网站建设费用
  • 让别人做网站推广需要多少钱网站建设建材
  • 做app网站设计王烨妮
  • 网站开发凭证做什么科目seddog站长之家
  • 郑州商务网站建设电子商城建设
  • 网站网络优化外包工业设计专业就业方向
  • 广州网站建设好公司网站收录代做
  • 长春做网站电话wordpress字号修改
  • 阿里云网站建设初衷CC wordpress 攻击
  • 建设企业网站服务器站长之家关键词挖掘工具
  • 徐州手机网站定制公司哪家好wordpress 插件钩子
  • 好的宠物网站模板厦门建设银行官方网站
  • 东莞网站关键词优化公司卖建材的网站有哪些
  • h5网站制作平台中国钓鱼网站大全
  • 自己做盗版影视网站北京中交建设工程咨询有限公司网站
  • 网站建设 找vx cp5173为什么要买wordpress会员
  • 网站信息评估抽查网页设计模板html代码明星
  • 新手做市场分析的网站百度怎么优化排名
  • 网站建设哪家网站建设好国际网站建设与维护
  • 推销网站建设具备哪些知识公司logo怎么注册
  • 阿里巴巴国际站入口百度小程序优化
  • 石家庄网站建设价格低广州好的网站设计公司
  • 非遗网站建设目的中国建设银行官方网站k宝驱动