【SCOI2009】迷路

2024-01-29 19:48
文章标签 scoi2009 迷路

本文主要是介绍【SCOI2009】迷路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Description

windy在有向图中迷路了。
该有向图有 N 个节点,windy从节点 0 出发,他必须恰好在 T 时刻到达节点 N-1。
现在给出该有向图,你能告诉windy总共有多少种不同的路径吗?
注意:windy不能在某个节点逗留,且通过某有向边的时间严格为给定的时间。

Input

第一行包含两个整数,N T。
接下来有 N 行,每行一个长度为 N 的字符串。
第i行第j列为’0’表示从节点i到节点j没有边。
为’1’到’9’表示从节点i到节点j需要耗费的时间。

Output

输出一个整数,可能的路径数,这个数可能很大,只需输出这个数除以2009的余数。

Sample Input

2 2
11
00

Sample Output

1

Data Constraint

Hint

100%的数据,满足 2 <= N <= 10 ; 1 <= T <= 1000000000 。

.
.
.
.
.
分析
在这里插入图片描述

.
.
.
.
.
.
程序:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;const int Max=150;
const int mo=2009; 
int n,m,sum,t1;
int ans[Max][Max],a[Max][Max],t[Max][Max];void jzcf(int x[Max][Max],int y[Max][Max])
{memset(t,0,sizeof(t));for (int i=1;i<=n*9;i++)for (int j=1;j<=n*9;j++)for (int k=1;k<=n*9;k++)t[i][j]=(((long long)x[i][k]*y[k][j])%mo+t[i][j]+mo)%mo;for (int i=1;i<=n*9;i++)for (int j=1;j<=n*9;j++)x[i][j]=t[i][j];
}int main()
{scanf("%d%d",&n,&t1);for (int i=1;i<=n;i++){for (int j=1;j<=n;j++){char x;cin>>x;if (x=='0') continue;a[i][((x-'0')-1)*n+j]=1;}for (int j=2;j<=9;j++)a[(j-1)*n+i][(j-2)*n+i]=1;}for (int i=1;i<=n*9;i++)ans[i][i]=1;while (t1!=0){if (t1&1) jzcf(ans,a);jzcf(a,a);t1>>=1;}cout<<ans[1][n]%mo;return 0;
}

这篇关于【SCOI2009】迷路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/657996

相关文章

【BZOJ】1026: [SCOI2009]windy数 数位DP

传送门:【BZOJ】1026: [SCOI2009]windy数 题目分析:数位DP水题。 代码如下: #include <stdio.h>#include <cstring>#include <algorithm>#define rep( i , a , b ) for ( int i = a ; i < b ; ++ i )#define For( i ,

BZOJ 1293 [SCOI2009] 生日礼物 题解与分析

1293: [SCOI2009]生日礼物 Time Limit: 10 Sec   Memory Limit:162 MB Submit: 630   Solved: 326   Description 小西有一条很长的彩带,彩带上挂着各式各样的彩珠。已知彩珠有N个,分为K种。简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置)。某些坐标上可以没有彩

网易:迷路的牛牛

牛牛去犇犇老师家补课,出门的时候面向北方,但是现在他迷路了。虽然他手里有一张地图,但是他需要知道自己面向哪个方向,请你帮帮他 输入描述: 每个输入包含一个测试用例。 每个测试用例的第一行包含一个正整数,表示转方向的次数N(N<=1000)。 接下来的一行包含一个长度为N的字符串,由L和R组成,L表示向左转,R表示向右转。 输出描述: 输出牛牛最后面向的方向,N表示北,S表示南,E表示东

大学计算机专业三天看完《Python背记手册》全彩版,轻松学会 Python不迷路!

Python作为一门编程语言,Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。 那么对于小白而言又该怎么学,从何处学起呢,这里有一份总结的Python背记手册,目录清晰的整理了需要学习的知识,内容从

Pathlib,一个不怕迷路的 Python 向导

大家好!我是爱摸鱼的小鸿,关注我,收看每期的编程干货。 一个简单的库,也许能够开启我们的智慧之门, 一个普通的方法,也许能在危急时刻挽救我们于水深火热, 一个新颖的思维方式,也许能激发我们无尽的创造力, 一个独特的技巧,也许能成为我们的隐形盾牌…… 神奇的 Python 库之旅,第 5 章 目录 一、Pathlib 简介二、Pathlib 编程示例三、结语四、作者Info

LeetCode 面试题 08.02——迷路的机器人

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 此题就是一个典型的图搜索题,一种就是广度优先搜索,一种就是深度优先搜索。 3. 代码实现 class Solution {public:vector<vector<int>> pathWithObstacles(vector<vector<int>>& obstacleGrid) {vec

【大语言模型LLM】-大语言模型乐园,高效办公不迷路!

🔥博客主页:西瓜WiFi 🎥系列专栏:《大语言模型》 ❤️感谢大家点赞👍 收藏⭐ 评论⭐ 🎥大语言模型LLM基础-系列文章: 【大语言模型LLM】-大语言模型如何编写Prompt? 【大语言模型LLM】-如何使用大语言模型提高工作效率? 【大语言模型LLM】-使用大语言模型搭建点餐机器人 ⭐持续更新中… 通用类大模型集合 资源名(Name)公司描述(Descri

1026: [SCOI2009]windy数(数位dp)

1026: [SCOI2009]windy数 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 12141 Solved: 5770 [Submit][Status][Discuss] Description   windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道, 在A和B之间,包括A和

P4159 [SCOI2009] 迷路(矩阵快速幂,两点路径为k的方案数)

思路: 具体参考https://www.luogu.com.cn/blog/qq-2056188203/mi-lu-scoi2009-ti-xie 简而言之,就是如果权值为1,要求两点之间经过 k k k条边的路径方案数,只要将邻接矩阵进行 k k k次方就好了。 本题权重为1~9,我们将每个点拆成10个点,两个点边权就通过拆成的点建边来表示,这样就成了权值为1的邻接矩阵形式了。 #inc

奥地利高速路为拯救3只迷路鸭子关闭3分钟

中新网布拉格6月19日电 奥地利最重要的交通要道--横贯全境东西的1号高速公路19日上午为了拯救3只迷路的小鸭子而关闭3分钟。这项特殊的救援行动造成了短暂的交通堵塞。   据奥地利媒体报道,3只迷路的小鸭子19日上午进入奥地利西部城市萨尔茨堡机场附近1号高速公路,它们摇摇晃晃地在左侧超车道上朝着维也纳方向行走。警察紧急出动把它们引到安全地带。   警方说,接到报告后,他们毫不犹豫地立即