首页 > 其他分享 >矩阵链乘 Matrix Chain Multiplication

矩阵链乘 Matrix Chain Multiplication

时间:2025-01-14 12:54:57浏览次数:1  
标签:链乘 ch Matrix int 矩阵 cin 行数 列数 Multiplication

题目链接: https://www.luogu.com.cn/problem/UVA442

题意:

给定若干个矩阵表达式,以及涉及到的矩阵的行与列
定义矩阵相乘次数为矩阵1的行数矩阵1的列数(矩阵2的行数)矩阵2的列数
计算每个表达式的矩阵相乘次数(若不满足矩阵乘法规律输出error)

思路:

如何存储数据以及对数据进行操作是关键
对表达式的解析就用栈
然而栈中要存一个矩阵的行数与列数(不能存字符,可能会改变原先矩阵的行数与列数,总之不好操作)

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node{
	int a;int b;
};
int n;
map<char,node>mp;
signed main()
{
	ios::sync_with_stdio(false),cin.tie(0);
	cin>>n;
	vector<ll>res;
	for(int i=1;i<=n;i++)
	{
		char ch;cin>>ch;int l,r;cin>>l>>r;
		mp[ch].a=l;
		mp[ch].b=r;
	}
	string s;
	while(cin>>s)
	{
		ll ans=0;
		bool f=true;
		stack<node>st;
		for(int i=0;i<s.size();i++)
		{
			if('A'<=s[i]&&s[i]<='Z')
			{
				st.push(mp[s[i]]);	
			}else if(s[i]==')')
			{
				node x=st.top();st.pop();
				node y=st.top();st.pop();
				if(x.a!=y.b){
					f=false;
					break;
				}else{
					ans+=y.a*x.a*x.b;
					st.push(node{y.a,x.b});
				}
			}
		}
		if(f){
			res.emplace_back(ans);
		}else{
			res.emplace_back(-1);
		}
	}
	for(int i=0;i<res.size();i++)
	{
		if(res[i]!=-1){
			cout<<res[i];
		}else{
			cout<<"error";
		}
		cout<<endl;
	}
	return 0;
}


标签:链乘,ch,Matrix,int,矩阵,cin,行数,列数,Multiplication
From: https://www.cnblogs.com/benscode/p/18670552

相关文章

  • LeetCode Top Interview 150 - Matrix
    ThisismerelymypersonalreviewofallthetypicalproblemsthatconstitutethemindsetforDataStructuresandAlgorithms(DSA).pythonsolutionprovidedFortheremainingtypesofproblems,pleaserefertomychannel.everecursion-CSDN博客everecursion......
  • 基于非负矩阵分解Non-negative Matrix Factorization的数据生成方法研究(Matlab代码实
      ......
  • 用Python进行Data-Matrix进行识别
    一、描述用大恒工业相机进行拍摄,因项目不方便,所以不妨原图,放置二值化后的图和选取的位置图二、上代码处理#图像二值化defpreprocess_image(image_path):image=cv2.imread(image_path,cv2.IMREAD_GRAYSCALE)_,binary=cv2.threshold(image,190,255,cv2.THRE......
  • CF2053F Earnest Matrix Complement
    CF2053FEarnestMatrixComplement题意:多测每次给定\(n,m,k\),存在一个\(n\timesm\)的表格,其中\(a_{i,j}\in{[1,k]\\text{and}\-1}\)令\(c_{i,j}=\sum_{p=1}^m{[a_{i,p}=j]}\)最后\(V=\sum_{i=2}^n\sum_{j=1}^{n\timesm}c_{i-1,j}......
  • 关于deeptools computeMatrix使用numpy报错
    $deeptools--versiondeeptools3.5.5在使用该版本deeptoolscomputeMatrix功能时遇见了如下报错computeMatrixreference-point--referencePointTSS\-b5000-a5000\-R/public/spst/home/fanxy2022/fxy/reference/GRCm38.p6/gencode.vM23.annotation.bed\-S*.b......
  • VULNHUB靶场-matrix-breakout-2-morpheus(1)
    1.直接把靶机拖进虚拟机中,用kali探测IP2.进入浏览器3.查看网页源代码后什么也没有后,扫描端口4.进入81端口5.进入bp爆破后爆破不到账号密码,进入kali进行爆破6.回到浏览器进入到/graffiti.php,有输入框尝试xss,存在xss漏洞 7.进行抓包,看到/graffiti.txt文件后,进......
  • CF2053F Earnest Matrix Complement 题解
    我也不知道显不显然,有一个重要性质是:一定存在一种最优方案,使得每一行的\(-1\)填的都是同一个数。证明的话直接调整即可,假设现在我们有一个最优方案,并且第\(i\)行填着不同的数,我们将每一种颜色\(u\),按\(c_{u,i-1}+c_{u,i+1}\)排个序,意思就是每多一个颜色\(u\)都会加上......
  • Accurate Neural Training with 4-bit Matrix Multiplications at Standard Formats
    目录概LogarithmicUnbiasedQuantization代码ChmielB.,BannerR.,HofferE.,YaacovH.B.andSoundryD.Accurateneuraltrainingwith4-bitmatrixmultiplicationsatstandardformats.ICLR,2023.概本文希望实现4-bit的模型训练和推理.提出了一种logarithm......
  • 「ABC257E」 Addition and Multiplication 2
    题意最开始有一个为零的数\(x\)。你可以花费一定代价在\(x\)后面加入一个\(0\sim9\)的数字。给定你拥有的钱和加入每一个数字的代价,求能组合出的最大数。分析考虑贪心。首先,不管是什么数字,较长的数字肯定比较短的数字大。所以找出代价最小的数,先求出最大长度。然后考......
  • Power of Matrix
    思路书上的原题,早就会了听了一下\(\rm{WGC}\)大佬讲题,这篇权当记录一下,并且熟练一下矩阵\(\LaTeX\)的写法首先我们发现,直接往上加是慢的,我们考虑先转化一下令\(s_i=A^0+A^1+A^2+\cdotsA^i\)那么有,\(s_i=s_{i-1}+A^i\)考虑用这个来矩阵优化......