当前位置: 首页 > news >正文

遵义市网站建设热搜词排行榜

遵义市网站建设,热搜词排行榜,华为公司网站建设分析评价,增城网站公司电话HH去散步 题目限制 内存限制:125.00MB时间限制:1.00s标准输入标准输出 题目知识点 动态规划 dpdpdp矩阵 矩阵乘法矩阵加速矩阵快速幂 思维 构造 题目来源 「SDOI2009」HH去散步 题目 题目背景 HH 有个一成不变的习惯,喜欢在饭后散步…

HH去散步

题目限制

  • 内存限制:125.00MB
  • 时间限制:1.00s
  • 标准输入
  • 标准输出

题目知识点

  • 动态规划 dpdpdp
  • 矩阵
    • 矩阵乘法
    • 矩阵加速
    • 矩阵快速幂
  • 思维
    • 构造

题目来源

「SDOI2009」HH去散步

题目

题目背景

HH 有个一成不变的习惯,喜欢在饭后散步,就是在一定的时间内,走一定的距离
同时, HH 是一个喜欢变化的人,她不会立刻沿着刚刚走过来的路走回去,她也希望每天走过的路径都不完全一样,她想知道每一天他究竟有多少种散步的方法

题目描述

现在 HH 送给你一张学校的地图,请你帮助她求出从地点 AAA 走到地点 BBB 一共有多少条长度为 TTT 的散步路径(答案对 459894598945989 取模)

格式

输入格式

输入共 M+1M + 1M+1 行:
111 行:输入 555 个整数 N,M,T,A,BN, \ M, \ T, \ A, \ BN, M, T, A, BNNN 表示 学校里的路口的个数(编号为 0∼N−10 \sim N - 10N1MMM 表示 学校里的道路的条数TTT 表示 HH 想要散步的距离AAA 表示 散步的出发点BBB 表示 散步的终点
接下来 MMM 行:每行 222 个用空格隔开的整数 ui,viu_i, \ v_iui, vi;表示 长度为 111 的第 iii 条路 连接 路口 uiu_iui路口 viv_ivi

输出格式

输出共一行:表示你所求出的答案(对 459894598945989 取模)

样例

样例输入

4 5 3 0 0
0 1
0 2
0 3
2 1
3 2

样例输出

4

提示

数据范围

对于 30%30 \%30% 的数据:满足 N≤4,M≤10,T≤10N \leq 4, \ M \leq 10, \ T \leq 10N4, M10, T10
对于 100%100 \%100% 的数据:满足 N≤50,M≤60,T≤230,ui≠viN \leq 50, \ M \leq 60, \ T \leq 2 ^ {30}, \ u_i \neq v_iN50, M60, T230, ui=vi


思路

这道题如果没有 她不会立刻沿着刚刚走过来的路走回去 的限制,就可以根据点与点的关系先构造出一个 n∗nn * nnn 的矩阵 x\mathrm{x}xx[i][j]\mathrm{x}[i][j]x[i][j] 表示从 iii111 步到 jjj 的方案数),累乘 TTT 次(就是走了 TTT 步),就用矩阵快速幂优化既可以通过了
现在就考虑加上这句话的限制后如何构造矩阵了


分析

考虑矩阵定义大致不变,即 x[i][j]\mathrm{x}[i][j]x[i][j] 表示从 iii111 步到 jjj 的方案数
由于有限制,就要记录刚刚走过来的路是哪一条
不妨把每条边对应的 uiu_iuiviv_ivi 拆成两个二元组 (node,id)\mathrm{(node, id)}(node,id),表示刚刚从第 id\mathrm{id}id 条路走到 node\mathrm{node}node,也就是每条无向边 (ui↔,vi)(u_i \leftrightarrow, v_i)(ui,vi) 分成两条有向边 (ui→vi)(u_i \to v_i)(uivi)(vi→ui)(v_i \to u_i)(viui),其中 node\mathrm{node}node 表示当前这条有向边的终点,id\mathrm{id}id 表示与之对应的无向边的编号
那么 x[i][j]=1\mathrm{x}[i][j] = 1x[i][j]=1 定义就是 iii 个二元组111 步到 jjj 个二元组 的方案数
其值只可能为 000111(因为只走了 111 步),其中值为 111 的条件就是 idi≠idj\mathrm{id}_i \neq \mathrm{id}_jidi=idjnodei\mathrm{node}_inodeinodej\mathrm{node}_jnodej 有一条边
推出了矩阵,但是还有一个细节,就是第一步的方案数
起始点是没有上一条边的,所以需要预处理一下(这里相当于先走了一次)
预处理矩阵 ×\times× 矩阵快速幂(T−1T - 1T1 次,预处理走了一次)就可以得到最终的矩阵了
最后把 起始点(超级源点)终点(可能有多个,因为分了边) 的路径加起来取模就可以了


代码

#include <cstdio>
#include <cstring>int rint()
{int x = 0, fx = 1; char c = getchar();while (c < '0' || c > '9') { fx ^= ((c == '-') ? 1 : 0); c = getchar(); }while ('0' <= c && c <= '9') { x = (x << 3) + (x << 1) + (c ^ 48); c = getchar(); }if (!fx) return -x;return x;
}const int MOD = 45989;const int MAX_N = 20;
const int MAX_M = 60;int N, M, T, A, B, node;
int e[MAX_M * 2 + 5][3];struct Matrix
{int mx[MAX_M * 2 + 5][MAX_M * 2 + 5];Matrix () { memset(mx, 0, sizeof(mx)); }void init() { for (int i = 0; i <= node; i++) mx[i][i] = 1; }Matrix operator * (const Matrix &rhs) const{Matrix res;for (int i = 0; i <= node; i++)for (int j = 0; j <= node; j++)for (int k = 0; k <= node; k++)res.mx[i][j] = (res.mx[i][j] + mx[i][k] * rhs.mx[k][j]) % MOD;return res;}
} dp, quick;Matrix qpow(Matrix mx, int k)
{Matrix res; res.init();while (k > 0){if (k & 1) res = res * mx;mx = mx * mx; k >>= 1;}return res;
}int main()
{N = rint(), M = rint(), T = rint();A = rint() + 1, B = rint() + 1;for (int i = 1; i <= M; i++){e[i][0] = rint() + 1, e[i][1] = rint() + 1;e[i + M][0] = e[i][1], e[i + M][1] = e[i][0];if (e[i][0] == A) ++dp.mx[0][i];if (e[i + M][0] == A) ++dp.mx[0][i + M];}node = M << 1;for (int i = 1; i <= node; i++)for (int j = 1; j <= node; j++)if (i + M != j && i - M != j && e[i][1] == e[j][0]) ++quick.mx[i][j];int ans = 0;Matrix res = dp * qpow(quick, T - 1);for (int i = 1; i <= node; i++)if (e[i][1] == B) ans = (ans + res.mx[0][i]) % MOD;printf("%d\n", ans);return 0;
}

http://www.dt0577.cn/news/53539.html

相关文章:

  • 怎么做自己的优惠淘网站百度竞价排名商业模式
  • 使用js做网站性能测试有名的seo外包公司
  • 网站域名怎么过户网络营销的方式和手段
  • kkday是哪里做的网站公众号怎么做文章推广
  • 机构单位网站建设方案建立网站的基本流程
  • excel网站建设互联网营销外包推广
  • 做网站的带宽多少钱百度seo关键词优化公司
  • 鞍山企业做网站营销策略
  • 建筑工程网络图怎么画google seo
  • 北京天津网站建设哪家公司好2021年关键词排名
  • 网站加v怎么做廊坊seo优化排名
  • 南昌哪家做网站好百度网盘搜索引擎
  • 茌平网站建设公司seo代理计费系统
  • 建设工程监理自己搜20条优化措施
  • 未来做哪些网站致富志鸿优化网
  • 青岛网站推广系统写一篇软文多少钱
  • 浙江网站建设公司济南做网站公司
  • 网站开发报价单长沙seo优化服务
  • 成品网站源码在线网时代教育培训机构怎么样
  • 广西做网站的公司有哪些seo顾问服务福建
  • 唐山 建设工程信息网站头条关键词排名查询
  • 网站开发 协作平台谷歌网站网址
  • 厦门网站建设报价免费推广产品的平台
  • 泰州住房和城乡建设厅网站首页体彩足球竞彩比赛结果韩国比分
  • 网站被黑解决方案百度竞价关键词怎么优化
  • 昆明做网站建设的公司什么软件可以弄排名
  • 大沥九江网站制作全国疫情最新
  • 网站开发 大学专业国内手机搜索引擎十大排行
  • 镇江网站建设推广刚刚地震最新消息今天
  • 做进口产品的网站亿驱动力竞价托管