D-走一个大整数迷宫(牛客月赛97)

题意:给两个n行m列的矩阵a和b,计数器,只有当计数器的值模(p-1)时出口才打开,要从左上走到右下,求最快多久走出迷宫。

分析:无论2的bij次方有多大p的2的bij次方的次方取模(p-1)都为1,所以cij=aij。用bfs搜索最短路径

代码:

#include<bits/stdc++.h>
using namespace std;
struct A{
    int x,y,pp;
};
int dx[4]{-1,1,0,0},dy[4]={0,0,-1,1};
int main(){
    int n,m,p;cin>>n>>m>>p;p--;
    int a[n+10][m+10],b[n+10][m+10];
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>a[i][j];
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>b[i][j];
        }
    }
    int dp[15][15][10100],vis[15][15][10100];
    vis[1][1][a[1][1]%p]=1;
    dp[1][1][a[1][1]%p]=0;
    queue<A>pru;
    pru.push({1,1,a[1][1]%p});
    while(!pru.empty()){
        auto u=pru.front();
        pru.pop();
        for(int i=0;i<=3;i++){
            int tx=u.x+dx[i],ty=u.y+dy[i],tp=(u.pp+a[tx][ty])%p;
            if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&!vis[tx][ty][tp]){
                vis[tx][ty][tp]=1;
                dp[tx][ty][tp]=dp[u.x][u.y][u.pp]+1;
                pru.push({tx,ty,tp});
            }
        }
    }
    if(!vis[n][m][0])cout<<"-1"<<endl;
    else cout<<dp[n][m][0]<<endl;
    
    return 0;
}

相关推荐

  1. 小白96 D 最小连通代价

    2024-07-11 05:06:05       25 阅读
  2. 小白92题解

    2024-07-11 05:06:05       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 05:06:05       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 05:06:05       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 05:06:05       57 阅读
  4. Python语言-面向对象

    2024-07-11 05:06:05       68 阅读

热门阅读

  1. 指令v-el的作用是什么

    2024-07-11 05:06:05       24 阅读
  2. html转换到pdf

    2024-07-11 05:06:05       25 阅读
  3. 【Rust】字符串String类型学习

    2024-07-11 05:06:05       24 阅读
  4. Docker修改国内镜像源

    2024-07-11 05:06:05       19 阅读
  5. docker无法拉取镜像,推荐可以使用下面镜像源

    2024-07-11 05:06:05       21 阅读
  6. Spring Boot Vue 毕设系统讲解 7

    2024-07-11 05:06:05       25 阅读
  7. influxdb时序数据库常用命令

    2024-07-11 05:06:05       24 阅读
  8. flutter

    flutter

    2024-07-11 05:06:05      24 阅读
  9. mysql索引优化

    2024-07-11 05:06:05       17 阅读
  10. Qt 实战(2)搭建开发环境 | 2.2、.pro文件详解

    2024-07-11 05:06:05       20 阅读
  11. 完善kobj_type结构体

    2024-07-11 05:06:05       20 阅读
  12. 【C++中resize和reserve的区别】

    2024-07-11 05:06:05       21 阅读