矩阵链乘 Matrix Chain Multiplication

news/2025/1/14 12:45:40/文章来源:https://www.cnblogs.com/benscode/p/18670552

题目链接: 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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/869029.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QD_0001:浅谈前端框架原理

最近在看卡颂大佬的《React 设计原理》,看了第一章,就有一种醍醐灌顶的感觉**,于是决定记录分享一下这一章的内容。这里也极力推荐各位小伙伴读一下。 本人其实是 Vue 开发者,没有太多地使用过 React,只是多多少少听过一些概念,能看懂一些 React 代码 因此我的文章,会更…

CF div2 992(A~E)

VP赛时三题。被AB题卡炸了,C题反倒发挥正常,D题可惜只想到了一半 A 没发现数据范围很小可以暴力 + 题干减号看成了加号,导致创造了二十多分钟才过A题的新纪录( code B 贪心 or 找规律,也是牢了一会儿。 显然要贪心地创造出能用上第二个操作的情景。所以从\(1\)位置出发,每…

深度学习入门之手写数字识别

模型定义 我们使用 CNN 和 MLP 来定义模型: import torch.nn as nnclass Model(nn.Module):def __init__(self):"""定义模型结构输入维度为 1 * 28 * 28 (C, H, W)"""super(Model, self).__init__()# 卷积层 1self.conv1 = nn.Sequential(# 二维…

省选构造专题

省选构造专题 The same permutation 首先打个表,发现在 \(1\le n\le 5\) 之内的是否有合法方案的情况为 √√√ 大了打不出来了。 考虑一下 \(4,5\) 连续有解,注意到一个偶数有解,则这个偶数 \(+1\) 也必定有解。 考虑以下构造方法即对于某一个交换,可以在它前后各添加一个…

自动化进程如何优化敏捷开发中的工作流

一、敏捷开发管理工具的现状 1.1 敏捷开发管理工具的基本功能 目前,敏捷开发管理工具的主要功能包括任务管理、进度跟踪、团队协作、资源分配、需求变更管理等。这些工具通常采用看板、任务板、甘特图、Burndown图等形式,帮助团队成员可视化地管理任务、跟踪项目进度、协调跨…

不知道前端代码哪里报错了?我有七种方式去监控它!

大家好,我是桃子,前端小菜鸟一枚,在日常工作中,有时候是不是不知道前端代码哪里报错了今天我给大家分享七中方法去监控它 我们先来说说前端中的错误类型有哪一些 错误类型 1、SyntaxError SyntaxError 是解析时发生语法错误,这个错误是捕获不到的,因为它是发生在构建阶段,…

web.config站内301永久重定向代码示例

注:此代码只适用于IIS服务器,如需要将123.asp重定向到123.html,请使用以下代码。 修改说明: 在web.config文件中添加301重定向规则,将123.asp重定向到123.html。<?xml version="1.0" encoding="UTF-8"?> <configuration><system.web…

请问云服务器需要开放哪些常用端口?

云服务器需要开放的端口与具体使用环境是有关系的,开放的端口越多,存在的安全隐患也就越大,所以开放端口越少越好。服务类型 端口 说明Web服务 80(HTTP), 443(HTTPS) 提供网站访问服务。FTP 21(文件管理) 提供文件传输服务。注:21端口可以关闭或修改。远程连接服务 3…

Audacity 3.7 (Linux, macOS, Windows) - 开源音频编辑器和录音工具

Audacity 3.7 (Linux, macOS, Windows) - 开源音频编辑器和录音工具Audacity 3.7 (Linux, macOS, Windows) - 开源音频编辑器和录音工具 Audacity is the worlds most popular audio editing and recording app 请访问原文链接:https://sysin.org/blog/audacity/ 查看最新版。…

CAP:Serverless + AI 让应用开发更简单

AI 已被广泛视为推动行业进步的关键力量,其在各行业的落地步伐加快。企业在构建 AI 应用开发过程中经常会面临 AI 技术门槛过高、试错周期过长、GPU 资源昂贵且弹性能力不足、缺乏配套工具、业务与模型的开发运维过于割裂、缺乏定制化能力等挑战,成为企业构建 AI 应用的『绊脚…

【运维自动化-作业平台】如何使用全局变量之密文类型?

密文类型的全局变量使用场景相对较少,使用方式也是直接引用即可,目前仅支持shell。一起来看看如何使用实操演示 1、新建作业时创建一个密文类型的全局变量app_secret2、添加一个执行脚本的步骤,脚本里打印下这个全局变量3、调试执行更多应用场景 上面这个示例是用最简单的ec…

微信多开防撤回、防撤回PC版 | WeChat4.0.1.21

点击上方蓝字关注我 前言 很多使用微信电脑版的朋友可能都会遇到一个问题,那就是微信电脑版不能同时登录多个账号。这对于那些需要在电脑上同时管理多个微信账号的人来说,确实很不方便。还有时候,别人撤回了他们发的消息,而我们可能就错过了那些重要的内容。这个版本可以同…