首页 > 其他分享 >2024/1/29~2024/2/4

2024/1/29~2024/2/4

时间:2024-02-01 11:14:24浏览次数:27  
标签:sy sx fx int fy 29 2024 vis

Wiki下象棋

题目链接:https://ac.nowcoder.com/acm/contest/74679/E

bfs搜两下就行了

#include <bits/stdc++.h>
using namespace std;
using ll = long long;


int fx[8] = {-1, 1, 0, 0, -1, 1, -1, 1};
int fy[8] = {0, 0, -1, 1, -1, -1, 1, 1};

const int mod = 1000000007;
const int N = 200005;
const double eps = 1e-6;

int dx[8] = {1, 1, -1, -1, 2, 2, -2, -2};
int dy[8] = {2, -2, 2, -2, 1, -1, 1, -1};
int bx[8] = {0, 0, 0, 0, 1, 1, -1, -1};
int by[8] = {1, -1, 1, -1, 0, 0, 0, 0};
int n, m;
bool vis[305][305], board[305][305];
int bfs1(int sx, int sy, int ex, int ey) {
  memcpy(vis, board, sizeof(vis));
  queue<pair<int, int> > q;
  q.push(make_pair(sx, sy));
  int cnt = 1, step = 0;
  vis[sx][sy] = true;
  while (!q.empty()) {
    int sum = 0;
    while (cnt--) {
      auto [x, y] = q.front();
      q.pop();
      if (x == ex && y == ey) return step;
      for (int i = 0; i < 8; ++i) {
        int fx = x + dx[i], fy = y + dy[i];
        if (fx < 1 || fy < 1 || fx > n || fy > m || vis[fx][fy]) continue;
        q.push(make_pair(fx, fy));
        vis[fx][fy] = true;
        ++sum;
      }
    }
    ++step;
    cnt = sum;
  }
  return -1;
}
int bfs2(int sx, int sy, int ex, int ey) {
  memcpy(vis, board, sizeof(vis));
  queue<pair<int, int> > q;
  q.push(make_pair(sx, sy));
  int cnt = 1, step = 0;
  vis[sx][sy] = true;
  while (!q.empty()) {
    int sum = 0;
    while (cnt--) {
      auto [x, y] = q.front();
      q.pop();
      if (x == ex && y == ey) return step;
      for (int i = 0; i < 8; ++i) {
        int fx = x + dx[i], fy = y + dy[i];
        if (fx < 1 || fy < 1 || fx > n || fy > m || vis[fx][fy] ||
            board[x + bx[i]][y + by[i]])
          continue;
        q.push(make_pair(fx, fy));
        vis[fx][fy] = true;
        ++sum;
      }
    }
    ++step;
    cnt = sum;
  }
  return -1;
}

int main() {
  ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
  int T = 1;
  cin >> T;
  while (T--) {
    cin >> n >> m;
    int k, sx, sy, ex, ey;
    cin >> k >> sx >> sy >> ex >> ey;
    memset(board, false, sizeof(board));
    for (int i = 1; i <= k; i++) {
      int x, y;
      cin >> x >> y;
      board[x][y] = true;
    }
    cout << bfs1(sx, sy, ex, ey) << " " << bfs2(sx, sy, ex, ey) << endl;
  }
  return 0;
}

标签:sy,sx,fx,int,fy,29,2024,vis
From: https://www.cnblogs.com/manjuan/p/18000785

相关文章

  • 【2024-01-31】早有面子了
    20:00人生的事,苦乐必定相伴,而且成正比例。吃苦愈多,享乐愈大,反之,不吃苦就不得享乐。这是丝毫不爽的定理。                                                 ——丰子恺......
  • 20240130
    Kotlin编程知识总结总结自《Android第一行代码》变量varval可变变量不可变变量自动类型推导:vala=10显式声明类型:vala:Int=10函数关键词funfunmethodName(param1:Int,param2:Int):Int{ return0}语法糖funmethodName(param1:Int,param2:Int):......
  • OpenDiary 2024-Jan
    OpenDiary2024-Jan12.31(这一天同样是伟大的,但是这个季度的月季一字未动,于是加在这里。)早上七点四十起来,等待八点舍友基本都起了打开电脑攻坚Celeste7B的最后一面。前一天晚上跳了30分钟没过的,早上5分钟结束战斗!这一天因此有资格成为伟大的!背上了5斤重的电脑,匆匆去......
  • 2024年1月份更新「GIS数据」全国的GeoJSON、shp格式数据下载获取(精确到乡镇街道级)
    发现个可以免费下载全国 geojson 数据的网站,推荐一下。支持全国、省级、市级、区/县级、街道/乡镇级以及各级的联动数据,支持导入矢量地图渲染框架中使用,例如:D3、Echarts等geojson数据下载地址:https://geojson.hxkj.vip该项目github地址:https://github.com/TangSY/echarts-m......
  • 寒假训练2024/1/29
    2024/1/29codeforce921A-WeGotEverythingCovered!题意:输出一个字符串,使得所有前k个字母表示的长度为n的字符串都是这个字符串的子串。思路:这个题稍微猜想一下就可以,其实是个傻瓜题(为C题铺垫)。把前k个字母,输出n遍就行。#include<bits/stdc++.h>usingnamespacestd......
  • 近期的感想与2024年的计划
    前言  2023年是我工作的第一年,到现在工作也有半年了,在工作的过程中有很多感悟,其中有关于技术的,也有关于为人处世的。首先是技术方面,工作半年也在不断地积攒经验,自己在团队协作中也有了一定的进步,知道了如何与人共同工作,技术提升上,做工程的经验也有了一定的进步,像git工具、docke......
  • CF292D Connexted Components
    原题传送门分析首先一眼看到这个题,第一个想到的肯定是dfs暴力每次询问时从左往右把边一条一条加进来,再从右往左加一遍,然后维护连通块个数。但是这样的复杂度显然是\(O(mk)\)的。所以我们需要一些优化。注意到在加边的时候有些边并不会改变连通块的个数。这些边我先称之为无......
  • 2024.1.31寒假每日总结22
    算法题:2670.找出不同元素数目差数组-力扣(LeetCode)①NLP(NaturalLanguageProcessing),也就是人们常说的「自然语言处理」,就是研究如何让计算机读懂人类语言,即将人的自然语言转换为计算机可以阅读的指令。②分词是NLP任务的一个起始,分词的好坏会影响整体模型的好坏。并且分......
  • Adobe2024最新版全家桶Ps、Pr、Ai、Ae、Au、Lrc、An直装版下载
    Adobe全家桶是Adobe公司开发的一套包括多个专业创意软件的综合性套装,涵盖了图形设计、影片制作、页面排版、音频编辑等多个创意领域。其中主要应用程序包括:Adobe2024全家桶Windows&Mac官方直装版AdobePhotoshop:图像处理和编辑软件,广泛用于照片修饰、合成和数字绘画。Ado......
  • 2024年Java面试题大全,带你突破技术瓶颈
    全套面试题已打包2024最全大厂面试题下载......