Mistwald( ZOJ - 3497,这也能用矩阵快速幂?!)

深入解析MTK平台hang_detect机制:从原理到实战调试 本文深入解析了MTK平台hang_detect机制的工作原理与实战调试技巧。作为系统健康监测的核心机制,hang_detect通过多层级监控体系检测应用层和内核层异常,结合Kernel_exception等日志信息快速定位问题。文章详细介绍了典型问题案例、调试方法及预防措施,帮助开发者提升MTK平台系统稳定性调试能力。 阅读详情

一.题目链接:

ZOJ-3497

二.题目大意:

m × n 的图.

起点为 (1, 1),终点为(m,n).

给出每个点的四个去处.

然后 Q 次询问

每次有一个整数 p 代表移动次数.

p 次移动后

if 不能到达终点,则输出 "False".

else if 只能移动到终点,则输出"True"

else 输出"Maybe"

三.分析:

本以为是个暴搜,结果是只披着搜索的矩阵快速幂. wsl

矩阵存图,若第 i 个点 与 第 j 个点相通,则D[i][j] == 1.

设 P = D × D.

由  P[i][j] = \sum_{k = 1}^{SiZe} D[i][k] \times D[k][j]

可得:若点 i 通过 2 个点到达 j 点,则 P[i][j] 非 0.

于是乎,就可以用矩阵快速幂了...

注意:题目中说,到达终点后,不可以再继续移动了,所以不可以记录终点的连接!

四.代码实现:

#include <set>
#include <map>
#include <ctime>
#include <queue>
#include <cmath>
#include <stack>
#include <vector>
#include <cstdio>
#include <sstream>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#define eps 1e-6
#define pi acos(-1.0)
#define ll long long int
using namespace std;

struct node
{
    int D[30][30];
};

int Size;

void init(node &T)
{
    for(int i = 1; i <= Size; ++i)
    {
        for(int j = 1; j <= Size; ++j)
            T.D[i][j] = 0;
    }
}

node juzhen(node a, node b)
{
    node c;
    init(c);
    for(int i = 1; i <= Size; ++i)
    {
        for(int j = 1; j <= Size; ++j)
        {
            for(int k = 1; k <= Size; ++k)
                c.D[i][j] += a.D[i][k] * b.D[k][j];
        }
    }
    return c;
}

node quick(node T, int p)
{
    node sum;
    for(int i = 1; i <= Size; ++i)
    {
        for(int j = 1; j <= Size; ++j)
        {
            if(i == j)
                sum.D[i][j] = 1;
            else
                sum.D[i][j] = 0;
        }
    }
    while(p)
    {
        if(p & 1)
            sum = juzhen(sum, T);
        T = juzhen(T, T);
        p >>= 1;
    }
    return sum;
}

int main()
{
    int T;
    scanf("%d", &T);
    while(T--)
    {
        int m, n;
        scanf("%d %d", &m, &n);
        Size = m * n;
        node T;
        init(T);
        getchar();
        for(int i = 1; i <= m; ++i)
        {
            for(int j = 1; j <= n; ++j)
            {
                int x1, y1, x2, y2, x3, y3, x4, y4;
                scanf("((%d,%d),(%d,%d),(%d,%d),(%d,%d))", &x1, &y1, &x2, &y2, &x3, &y3, &x4, &y4);
                getchar();
                if(i == m && j == n)
                    continue;
                T.D[(i - 1) * n + j][(x1 - 1) * n + y1] = 1;
                T.D[(i - 1) * n + j][(x2 - 1) * n + y2] = 1;
                T.D[(i - 1) * n + j][(x3 - 1) * n + y3] = 1;
                T.D[(i - 1) * n + j][(x4 - 1) * n + y4] = 1;
            }
        }
        int q;
        scanf("%d", &q);
        while((q--) > 0)
        {
            int p;
            scanf("%d", &p);
            node T2 = quick(T, p);
            if(!T2.D[1][Size])
                printf("False\n");
            else
            {
                bool flag = 0;
                for(int i = 1; i < Size; ++i)
                {
                    if(T2.D[1][i])
                        flag = 1;
                }
                if(flag)
                    printf("Maybe\n");
                else
                    printf("True\n");
            }
        }
        printf("\n");
    }
    return 0;
}

 

OpenClaw实战系列03:Slack/Telegram国际版接入实战指南 在当今的软件开发和工作流自动化中,将项目管理工具与即时通讯平台集成已成为提高团队协作效率的关键。OpenClaw作为一个开源的自动化工具,通过接入Slack和Telegram国际版,可以实现实时通知、自动化任务触发和团队协作的无缝对接。本文将详细介绍如何实现OpenClaw与这两个主流即时通讯平台的集成。OpenClaw是一个开源的自动化工作流引擎,支持多种触发器和执行器,能够帮助开发团队实现CI/CD流程、任务调度、监控告警等自动化场景。模块化设计:支持插件化扩展多触发器支持。 阅读详情

相关推荐

从零开始:用AutoLisp为AutoCAD定制专属工具栏(2023最新版)

本文详细介绍了如何利用AutoLisp语言为AutoCAD定制专属工具栏,以提升绘图效率。内容涵盖从环境配置、AutoLisp基础语法到实战开发的全过程,指导用户编写自动化脚本、封装功能函数,并最终通过CUI编辑器创建和部署个性化工具栏按钮,是2023年CAD用户实现工作流自动化与个性化的实用指南。

4k5l6j7h8的博客 299

ZOJ 3497 Mistwald【矩阵快速幂】【图论】

题目链接http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4320思路题意是给你一张图,起点是1,终点是m*n,一旦走到终点就立马停止不能再走了,问你可不能正好P步到达终点。可能输出maybe,一定输出true,不可能输出false。这里要用到离散数学的一个定理,就是一张图的邻接矩阵A,P次方后得到的邻接矩阵APA^P 中的元素ai

初涉_代码世界 820

STM32F4的sct文件理解

原文地址http://blog.sina.com.cn/s/blog_898f36590100ya2l.html ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...

weixin_34008805的博客 995

ZOJ 3497 Mistwald(矩阵快速幂)

题目: Mistwald Time Limit: 2 Seconds      Memory Limit: 65536 KB In chapter 4 of the game Trails in the Sky SC, Estelle Bright and her friends are crossing Mistwald to meet their final ene

hexiecs的技术专栏 876

Window10 intel realsense D435安装并实现opencv显示realsense读取的彩色和深度数据(QT+openCV+rsD35)

(1)点击"官方指南" 来到下载页,-&gt;最新的稳定版本发布 (本人下的2.16.5,现在最新2.17.0) 不需要做开发,只要下载Intel RealSense Viewer就好,这个就是相机的可视化界面,简洁明了。对应的安装包是Intel.RealSense.Viewer.exe。 本人的毕设要用到深度图做开发,所以安装Intel.RealSense.SDK.exe,SDK...

Pabebe的博客 1万+

WandB本地部署踩坑指南:从Docker启动到License更新的完整流程(附常见错误解决方案)

本文详细介绍了Weights & Biases(WandB)机器学习实验管理平台的本地化部署全流程,涵盖从Docker环境搭建、许可证管理到常见错误排查的实战经验。针对企业级应用场景,文章还提供了性能优化、高可用架构设计及开源替代方案Trackio的评估与迁移策略,为构建安全、可控的内部实验追踪平台提供完整解决方案。

potato的博客 567

zoj 3497 Mistwald 矩阵快速幂

知道了矩阵的新作用,矩阵A^P,A[i][j]的数值是从i到j长度为P的路径条数,矩阵相乘如果A[i][k为1,B[k][j]为1,A[i][j] 必然>=1,表明以k为桥梁将i和j连接起来,和floyd算法本质上是一致的。 传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4320 #include #incl

NM的专栏 452

基于Simulink的魔术公式轮胎动力学仿真

本篇博文主要用来记录汽车系统动力学课程的学习,仅供课程阶段参考,与实际工程应用还有较大距离。基于Simulink的魔术公式轮胎动力学仿真本实例主要有以下任务。1.建立魔术公式轮胎动力学仿真模型。2.绘制不同载荷下的轮胎纵向力—滑动率关系曲线。3.绘制不同载荷下的轮胎侧向力—侧偏角关系曲线。4.绘制不同载荷下的轮胎回正力矩—侧偏角关系曲线。提示:以下是本篇文章正文内容,下面案例可供参考。

shy_201992的博客 6940

ZOJ 3497 Mistwald 矩阵快速幂

思路:先将二维的坐标转换成一维的坐标,然后用矩阵存储,然后进行pci路径转移。关键点就是不能从出口处转移。#include &lt;string&gt; #include &lt;iostream&gt; #include &lt;cstdio&gt; #include &lt;cstring&gt; using namespace std; const int N = 26; int n,m; ...

Peppermint__的博客 268

第三篇:学习InternVL2.0(探讨代码之训练模块版)

InternVL2的训练模块

qq_69051120的博客 1244

【软考高级架构】论文范文16——论分布式缓存架构设计及其应用

随着互联网业务的快速发展,高并发访问和海量数据处理对系统响应时间提出了极高要求,传统基于磁盘的数据库存储已难以满足毫秒级的性能需求。分布式缓存作为一种高性能、可扩展的数据存储中间件,能够有效减轻后端数据库压力、加速热点数据访问、提升系统吞吐量,已成为高并发系统架构中的核心组件。本文以笔者主导的某大型电商平台秒杀系统建设项目为案例,围绕分布式缓存架构设计展开论述。笔者担任系统架构师,主导了缓存选型、数据分片策略、缓存一致性方案、高可用架构及缓存穿透/雪崩/击穿防护机制的设计与落地。

qq837993702的博客 162

zoj 3497 Mistwald

Mistwald Time Limit: 2 Seconds      Memory Limit: 65536 KB In chapter 4 of the game Trails in the Sky SC, Estelle Bright and her friends are crossing Mistwald to meet their final enemy, Lucciola

ACway的专栏 1943

励磁电感 Lm 选对了,LLC 才真“高效”:半桥 LLC 效率优化

你有没有遇到过这种 LLC:参数一套下来,ZVS 也有了,波形看着也“挺谐振”,但一上功率——,效率就是死活上不去。我说句直白的:LLC 的“高效”,很大一部分其实是在背后控场。Lm 选小了,励磁电流蹭蹭涨,谐振电流 RMS 变大,导通损耗、开关损耗、整流损耗一起上天;Lm 选太大,又可能把 ZVS 的门槛抬高,轻载掉 ZVS,EMI 也开始作妖。

weixin_43199439的博客 434

ZOJ 3497--Mistwald

设有向图D=&lt;V,E&gt;,V={v1,v2,…,vn}D=&lt;V,E&gt;, V = \lbrace v_1,v_2, \ldots, v_n \rbraceD=<V,E>,V={v1​,v2​,…,vn​},令aij(1)a_{ij}^{(1)}aij(1)​顶点viv_ivi​邻接到顶点vjv_jvj​的边的条数,称(aij(1))n...

萌新也要搞算法 191

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

zoj3497:Mistwald(矩阵快速幂)

传送门 题意 有一个n*m的矩阵,矩阵上每一个格子有四个传送门,分别通向四个格子,题目给出了每个格子的四个传送门所能到达的地方。起点在(1,1),终点是(n,m),当走到终点的时候就不能再走了,也就是说一旦你到达了终点,就会直接离开这个矩阵。问说从起点开始走P(0 ≤ P ≤ 100,000,000)步能不能到达终点。 输出的情况是True,Maybe和False。Ture对应的就是走...

anquan1533的博客 116

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ZOJ 3497 Mistwald (矩阵快速幂解决类似图论问题)

点击打开链接 这道题的题意大概是有一个n*m的图,会告诉你每一个点的出边,与哪四个点相连(可能是重复的),注意这是单向的连接。问从起点(1,1)开始,走P步之后,是一定到终点(n,m),还是可能到,还是不可能到终点?其中在行走的过程中,除了第P步到达的点,其他都不能是终点,但是可以重复经过其他点。 这道题由于方便起见,把起点设置为(0,0),终点就是(n-1,m-1),按行优先

Muya 596

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【已解决】zoj 3497 Mistwald 矩阵快速幂

时隔几个月重新做,终于ac了! 题目看似是图论,但事实是矩阵相乘。根据离散数学书上说的,邻接矩阵A的k次幂得到的新矩阵B中,bij表示ai到aj长度为k的通路数。 上面的方法计算的是任意两点通路数,而本题目要求终点不能有出边,基于酱紫,只要把终点那一行全部置为0就ok,这里不求通路数,改为求能否k步到达终点。 #include #include #include #include #

leolin_的专栏 1010

zoj 3497 Mistwald (矩阵应用)

/* 邻接矩阵A的k次幂得到的新矩阵B中,bij表示ai到aj长度为k的通路数。 上面的方法计算的是任意两点通路数, 而本题目要求终点不能有出边, 只要把终点那一行全部置为0就ok, 这里不求通路数,改为求能否k步到达终点。 */ # include # include # include # include using namespace std; struct node { i

苍竹林 468

ZOJ 3497 Mistwald

In chapter 4 of the game Trails in the Sky SC, Estelle Bright and her friends are crossing Mistwald to meet their final enemy, Lucciola. Mistwald is a mysterious place. It consists of M * N scenes, n

Occult 361

Mistwald ZOJ - 3497 (矩阵快速幂)

Mistwald ZOJ - 3497 In chapter 4 of the game Trails in the Sky SC, Estelle Bright and her friends are crossing Mistwald to meet their fi...

codeswarrior的博客 336

zoj 3497 Mistwald(矩阵快速幂)

#include #include #include #include #include #include #define inputt int t;cin>>t; #define pi acos(-1.0) #define lson o*2,l,m #define rson o*2+1,m+1,r #define Mid (l+r)/2 #define MAXN 30 typedef

Enigmo的博客窝 370

ZOJ 3497 Mistwald(矩阵快速幂)

水题 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll

宝树啊宝树 467

zoj 3497 Mistwald(矩阵快速幂)

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3497.   按照规则处理一下建图即可, 然后就是一个最大25*25的矩阵快速幂了     #include&lt;bits/stdc++.h&gt; using namespace std; struct node{ int ma[33][33]; }; i...

三水的鱼塘♂ 261

ZOJ 3497 Mistwald

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3497 题意 : 给你一个5 * 5的矩阵, 存在一些单向边(存在自环), 然后问你从 (1, 1) -> (n, m)走k步到达 这一情况是否存在。 思路 PS : 比赛的时候没想出, 后来发现这其实就类似这一题 (这题以前是肉鸽师傅教我的, 当时只当是矩阵快速幂在做

Dewey's blog 1025
上一篇: Travelling (HDU - 3001 ,状压 DP)
下一篇: Sumdiv (POJ - 1845,求 A^B 的约数和)
The___Flash
博客等级 码龄8年 79粉丝 223原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值