首页 > 其他分享 >9.点火游戏

9.点火游戏

时间:2023-04-02 17:22:16浏览次数:39  
标签:PII 点火 dist 游戏 int res cnt ans

原题链接:https://www.acwing.com/problem/content/description/4226/

#include<iostream>
#include<cstring>
#include<queue>
using namespace std;

const int N=15,INF=0x3f3f3f3f;
#define x first
#define y second
int n,m;
typedef pair<int,int> PII;
char g[N][N];
int cnt,ans;
int dist[N][N];
int dx[4]={1,-1,0,0},dy[4]={0,0,1,-1};

void bfs(PII a,PII b)
{
    queue<PII> q;
    q.push(a);
    q.push(b);
    int num=2;
    memset(dist,0x3f,sizeof dist);
    dist[a.x][a.y]=0,dist[b.x][b.y]=0;
    int res=0;
    while(q.size())
    {
        PII t=q.front();
        q.pop();
        if(num==cnt){
            ans=min(res,ans);
            return;
        }
        for(int i=0;i<4;i++)
        {
            int x=dx[i]+t.x,y=dy[i]+t.y;
            if(x<0||x>=n||y<0||y>=m||g[x][y]=='.') continue;
            if(dist[x][y]==INF){
                dist[x][y]=dist[t.x][t.y]+1;
                num++;
                res=max(dist[x][y],res);
                q.push({x,y});
            }
        }
    }
}

int main()
{
    int tt;
    cin>>tt;
    for(int c=1;c<=tt;c++)
    {
        cin>>n>>m;
        vector<PII> nums;
        cnt=0,ans=INF;
        for(int i=0;i<n;i++)
            for(int j=0;j<m;j++)
            {
                cin>>g[i][j];
                if(g[i][j]=='#'){
                    nums.push_back({i,j});
                    cnt++;
                }
            }
        if(cnt<=2) ans=0;
        if(cnt==0) ans=-1;
        int len=nums.size();
        for(int i=0;i<len;i++)
            for(int j=0;j<i;j++)
            {
                bfs(nums[i],nums[j]);
            }
        if(ans==INF) ans=-1;
        printf("Case %d: %d\n",c,ans);
    }
}



标签:PII,点火,dist,游戏,int,res,cnt,ans
From: https://www.cnblogs.com/linearlearn/p/17280828.html

相关文章

  • NIM游戏/SG函数
    NIM游戏先看一下一维NIM游戏。有一堆大小为\(n\)的石子,甲和乙轮流从石堆里面拿石子,不能一次拿掉所有石子,取走最后一个石子的人获胜,甲先开始,谁是必胜的?显然,谁先手,谁就获胜。那么推广到二维呢?有两堆大小为\(n\)\(m\)的石子,甲和乙轮流从两个石堆里拿石子,每次从一个石堆......
  • 【macOS游戏】Phoenix Point
    原文来源于黑果魏叔官网,转载需注明出处。(下载请直接百度黑果魏叔)X-COM创作者著名的PhoenixPoint策略现已发布完整版,其中包括所有四年开发的所有添加、内容更新、游戏改进。现在有了支持模组!土地被占领了。外星人威胁突变危及人类的残余。只有凤凰计划,一个由最好的科学家和最勇敢的......
  • 代码随想录day 32● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II
    122.买卖股票的最佳时机II给定一个数组,它的第 i个元素是一支给定股票第i天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例1:输入:[7,1,5,3,6......
  • day32 打卡122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II
    day32打卡122.买卖股票的最佳时机II55.跳跃游戏45.跳跃游戏II122.买卖股票的最佳时机II122题目链接classSolution{publicintmaxProfit(int[]prices){intresult=0;for(inti=1;i<prices.length;i++){result+=Math.......
  • Mac应用Drone Station结合普通游戏手柄让AR Drone飞起来
    ARDrone直升机确实很好玩,但以前只有用iPad,iPhone,iPodTouch,安卓智能手机,及Linux电脑才能玩,不过有了DroneStation,玩家现在可以使用Mac结合游戏手柄来玩。玩家可以用一个普通游戏手柄来控制飞行器,目前兼容USBXbox360,PS3,Extreme3D pro,DualActionGamepad,ThrustmasterT-Fl......
  • Instagram变身小游戏: InstaGamer
     还记得那个让你随时随地在你的iPhone上观看并分享好友最新照片的Instagram么,通过它你能将你喜欢的照片制作成炫目的艺术作品并分享,众多炫目的滤镜或移轴特效让你的照片焕然一新,让平淡的生活多姿多彩。游戏名称:InstaGamer游戏平台:iPhone/iPodtouch/iPad价格:Free对于这种形......
  • 游戏机向智能机屈服,索尼推触摸屏PSV
    索尼最新的手持游戏设备PlayStationVita将会在2012年的2月在美国上市。Vita有两个类似街机的游戏摇杆和按钮,不过更有意思的是其屏幕竟然是触摸屏,并且有一个供触控的界面,这看上去很像当下许多智能机,因为目前很多智能机上的游戏变得越来越流行,而且是流行得不可思议。比如说《愤......
  • 苹果与乔布斯对游戏行业影响力排名均居各自类别之首
    伦敦游戏节将至,外媒对将要参加此次活动的视频游戏专业人士进行了采访,让他们分别说出自己认为对视频游戏行业产生重大影响前五位人物以及五种硬件设备。最终结果显示乔布斯和苹果的影响力综合排名都在各自类别之首。硬件设备第一位iPHone——17%第二位......
  • 游戏AI——GOAP技术要点
    目录什么是GOAP(Goal-OrientedActionPlanning)细节难点与挑战世界表达具体类型表示字符串表示bool转化为枚举规划器Regoap流程Middle-earth™:ShadowofMordor™的系统分层古墓丽影2013的Motive系统工具规划管理器(PlannerMonitor)GOAP自动化统计模块思考相关资料什么是GOAP(Goal......
  • 让游戏在Google Play排最前的10个免费策略
    作为独立开发商,要想应用或游戏在GooglePlay靠前,恐怕是一件非常艰难的事情,也许成千上万的美元换不来一丝变化,不过,如果你知道这10个排名靠前的秘密,就有可能不会一分一文,让你......