UVA 11551 – Experienced Endeavour(矩阵高速幂)[通俗易懂]

UVA 11551 – Experienced Endeavour(矩阵高速幂)

大家好,又见面了,我是全栈君。

UVA 11551 – Experienced Endeavour

题目链接

题意:给定一列数,每一个数相应一个变换。变换为原先数列一些位置相加起来的和,问r次变换后的序列是多少

思路:矩阵高速幂,要加的位置值为1。其余位置为0构造出矩阵,进行高速幂就可以

代码:

#include <cstdio>#include <cstring>const int N = 55;int t, n, r, a[N];struct mat {    int v[N][N];    mat() {memset(v, 0, sizeof(v));}    mat operator * (mat c) {	mat ans;	for (int i = 0; i < n; i++) {	    for (int j = 0; j < n; j++) {		for (int k = 0; k < n; k++)		    ans.v[i][j] = (ans.v[i][j] + v[i][k] * c.v[k][j]) % 1000;	    }	}	return ans;    }};mat pow_mod(mat x, int k) {    mat ans;    for (int i = 0; i < n; i++) ans.v[i][i] = 1;    while (k) {	if (k&1) ans = ans * x;	x = x * x;	k >>= 1;    }    return ans;}int main() {    scanf("%d", &t);    while (t--) {	scanf("%d%d", &n, &r);	for (int i = 0; i < n; i++) scanf("%d", &a[i]);	int x; mat Mat;	for (int i = 0; i < n; i++) {	    scanf("%d", &x);	    int b;	    while (x--) {		scanf("%d", &b);		Mat.v[i][b] = 1;	    }	}	Mat = pow_mod(Mat, r);	for (int i = 0; i < n; i++) {	    int ans = 0;	    for (int j = 0; j < n; j++) {		ans = (ans + a[j] * Mat.v[i][j]) % 1000;	    }	    printf("%d%c", ans, (i == n - 1 ? '\n' : ' '));	}    }    return 0;}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115544.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java安装下载步骤_java下载安装教程

    java安装下载步骤_java下载安装教程java下载安装教程首先,我们可能需要查看一下电脑的配置信息,单击开始按钮选择系统,一般我们只需要关注是多少位的系统,还有是windows或Linux即可,如图:推荐教程:《java学习》在网络畅通的情况下,在任意浏览器都可以查找java的下载链接,我这边的链接是http://www.oracle.com/technetwork/java/javase/downloads/index.html,输…

    2022年7月7日
    28
  • 向量内积的矩阵表示为_列向量乘列向量的转置

    向量内积的矩阵表示为_列向量乘列向量的转置设x,y是两个相同个数分量的向量,则 表示x和y的内积。比如这页书就是这个意思:

    2025年12月8日
    7
  • 学术资源不定期分享-【费曼物理学讲义英文原版】[通俗易懂]

    学术资源不定期分享-【费曼物理学讲义英文原版】[通俗易懂]相关资料简介理查德·费曼(全名理查德·菲利普斯·费曼),(1918年5月11日生于美国纽约)他是美国理论物理学家,被广泛认为是二战后他的研究领域中最杰出、最具影响力的人物之一。费曼因他在量子电动力学方面的工作而闻名:他描述了光如何与物质相互作用以及带电粒子如何相互作用。他还设计了粒子如何相互作用的图表(现在称为费曼图)和液氦超流体行为的量子力学解释(接近绝对零度时如何在没有摩擦的情况下流动)。第二次世界大战期间,费曼被聘为普林斯顿大学美国原子弹项目的一名工作人员(1941-42年),后来又在新墨西哥.

    2022年6月6日
    60
  • 基于tensorflow的LSTM 时间序列预测模型

    时间序列预测(曲线回归或曲线拟合),结构为训练数据生成-》隐藏输入层-》LSTM神经层-》隐藏输入层-》结果,也可以采用LSTM神经层-》全连接层(多层的普通神经网络)构成,训练效果未对比,与参数调优相关。参数说明:TIME_STEPS:RNN训练的步数,一次训练输入的序列长度;INPUT_SIZE:输入序列中,单个输入的维度,用于曲线拟合或者回归的话,维度即为1;BATCH_SIZE:训练的批…

    2022年4月9日
    44
  • 关于 redis、memcache、mongoDB 的对比

    关于 redis、memcache、mongoDB 的对比

    2021年11月10日
    34
  • 程序员们千万不要接私活(程序员找私活的平台)

    点击上方“码农突围”,马上关注,每天上午8:50准时推送这里是码农充电第一站,回复“666”,获取一份专属大礼包真爱,请设置“星标”或点个“在看”作者:程序员新视界来源:…

    2022年4月11日
    138

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号