例题6-3 UVA 442 Martrix Chain Multiplication矩阵链乘_例题6-3、矩阵链乘-程序员宅基地

技术标签: uva  c语言    第六章 数据结构基础(例题)  

这个题感觉类似于找BUG那个题,

这个题给你很多运算式子,求解式子的值,主要就是括号问题。

看了例题分析:感觉方法非常巧妙:

利用了栈stack,:

碰到一个字母就入栈,碰到一个右括号“ )”,就出栈两个元素,计算后记录结果,并把结果再次入栈,以此类推,,好巧妙!

也给我一个启示,像这种类似多括号问题,尽量试试stack分析解析式!!

奥 结构体构造函数初始化不能忘,构建新的结构体入栈很方便!


#include<iostream>
#include<cstdio>
#include<stack>
#include<cctype>
using namespace std;
struct martrix{
    int m,n;
    martrix(int m= 0,int n=0):m(m),n(n){}
}mar[26];
int main()
{
    int n;
    cin >> n;
    string s,p;
    for (int i = 0; i < n; ++i){
        cin >> s;
        int key = s[0] - 'A';
        cin >> mar[key].m >> mar[key].n;
    }
    while(cin >> s){
        stack<martrix>st;
        int sum = 0;
        int len = s.length();
        bool ok=true;
        for (int i = 0; i < len; ++i){
            if (isalpha(s[i]))st.push(mar[s[i]-'A']);
            else if (s[i] == ')'){
                martrix m2 = st.top();st.pop();
                martrix m1 = st.top();st.pop();
                if (m1.n != m2.m){ok=false;break;}
                sum += m1.m*m1.n*m2.n;
                st.push(martrix(m1.m,m2.n));
            }
        }
        if (ok)cout << sum << endl;
        else cout << "error" << endl;
    }
    return 0;
}


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/aozil_yang/article/details/50645385

智能推荐

zzuli oj 1026: 字符类型判断(java)_由键盘输入一个字母,判断该字母是否为小写字母-程序员宅基地

文章浏览阅读1k次。题目描述从键盘输入一个字符,判断该字符是否大写字母、小写字母、数字字符或其他字符。分别输出对应的提示信息。输入输入一个字符。输出如果该字符是大写字母,则输出“upper”;若是小写字母,则输出“lower”;若是数字字符,则输出“digit”;若是其他字符,则输出“other”。(输出不含双引号)。样例输入E样例输出upper先调到java再提交import java.util.*;public class Main{ public static ._由键盘输入一个字母,判断该字母是否为小写字母

x32,x64下安装OleDB驱动_oledb驱动安装-程序员宅基地

文章浏览阅读4.4k次。Office 2007 x32,Win7 x64 安装OleDB驱动Office 2007、2010的Ace引擎都是Microsoft.ACE.OLEDB.12.0,这点从微软AccessDatabaseEngine包中可以得知。下面我们就来解决x32、x64下OLE驱动的安装。 Microsoft Access 2010 数据库引擎可再发行程序包Acces_oledb驱动安装

全新体验:借助海外云手机畅玩TikTok_可以用云手机玩tiktok吗-程序员宅基地

文章浏览阅读391次,点赞10次,收藏5次。对于众多跨境卖家而言,使用热门社交平台进行引流已成为常态,而TikTok作为全球短视频平台,吸引了来自全球的用户,成为众多商家争相开拓的新蓝海。要在中国运营TikTok账号,普通的手机不太方便,试试全新的海外云手机吧!_可以用云手机玩tiktok吗

BZOJ 1189 [HNOI2007]紧急疏散evacuate-程序员宅基地

文章浏览阅读339次。二分+最大流。首先可以发现如果t时间可以全部撤离,那么所有大于t的时间都可以撤离,于是考虑二分。又发现其实一个人往一个门走,走的肯定是最短路,于是可以计算出每个人到每个门的最短路。每一个人看作一个流量,由源点向每个人连容量为1的边。将每个门拆点表示每个时间出去的人(对于一个门C可以拆成编号为C+1,C+2,C+3,C+4……都向汇点连容量1的边),最多拆400个。每个人向每个门的【C+最短路距离】点

自动配置bond(0-6)脚本_网卡bond0脚本-程序员宅基地

文章浏览阅读149次。自动配置bond脚本(0-6)_网卡bond0脚本

H264编码流程_h.264编码流程-程序员宅基地

文章浏览阅读1.7k次,点赞2次,收藏8次。H264编码流程手绘图:H264编码网上图:_h.264编码流程

随便推点

多输入多输出 | Matlab基于麻雀算法优化卷积神经网络(SSA-CNN)多输入多输出预测,麻雀算法优化卷积神经网络(SSA-CNN)的回归预测_卷积神经网络算法预测-程序员宅基地

文章浏览阅读90次。多输入多输出 | Matlab基于麻雀算法优化卷积神经网络(SSA-CNN)多输入多输出预测,麻雀算法优化卷积神经网络(SSA-CNN)的回归预测_卷积神经网络算法预测

FPGA用vhdl语言设计简单硬件电子琴设计_电子琴按键分频程序编写-程序员宅基地

文章浏览阅读1.2k次,点赞3次,收藏28次。四音调 六音阶_电子琴按键分频程序编写

单片机学习心得(一)_arduino单片机学习心得-程序员宅基地

文章浏览阅读154次。单片机学习笔记,主要是以arduino开发板为主。_arduino单片机学习心得

年轻人为什么更喜欢真无线蓝牙耳机?2020五款高性价比蓝牙耳机推荐_jbl为什么只支持sbc-程序员宅基地

文章浏览阅读503次。自分离式腔体的耳机首次推出之后,真无线耳机的风潮席卷世界。很明显,真无线耳机让用户体验到了耳机与身体一体而行的自由体验,观感体验可谓是颠覆性的。蓝牙耳机的好处显而易见:首先,摆脱线材束缚,真正实现无拘无束这一点是显而易见的,纯粹的真无线蓝牙耳机再也没有线材的连接,真正的解放双手,并且轻盈、自在。在有些特定场合,比如运动、通勤等场合,一款真无线蓝牙耳机绝对是首选。其次,开启新的音频传输方式,真无线蓝牙耳机时代对比传统的入耳式“无线蓝牙耳机”,真无线蓝牙耳机的连接不仅是耳机和信号发射设备之间_jbl为什么只支持sbc

vue 项目中添加DES加密-程序员宅基地

文章浏览阅读615次,点赞24次,收藏20次。vue 项目中添加DES加密

十进制,二进制,八进制,十六进制之间转换-程序员宅基地

文章浏览阅读355次。一. 十进制转二进制二. 二进制转十进制三. 十进制转八进制四. 八进制转十进制五. 十进制转十六进制