442 - Matrix Chain Multiplication

来源:互联网 发布:淘宝提醒买家好评短信 编辑:程序博客网 时间:2024/06/11 21:22
#include <iostream>#include <list>#include <cstring>#include <vector>using namespace std;typedef struct{    char mat_name;    int row;    int col;} Mat;typedef struct{    int r;    int c;} News;int main(){//    freopen("a.txt","r",stdin);    int i,n,flag,count,sum;    cin>>n;    vector<Mat> v;    v.clear();    while(n--)    {        Mat mat;        cin>>mat.mat_name>>mat.row>>mat.col;        v.push_back(mat);    }    char str[110];    memset(str,0,sizeof(str));    int s[110];    while(cin>>str)    {        memset(s,0,sizeof(s));        flag=count=0;        News news[110];        for(i=sum=0; i<strlen(str); i++)        {            if(str[i]<='Z'&&str[i]>='A')            {                news[sum].r=v[str[i]-'A'].row;                news[sum++].c=v[str[i]-'A'].col;            }            else if(str[i]==')'&&sum>=2)            {                if(news[sum-1].r!=news[sum-2].c)                {                    flag=1;                    break;                }                count+=news[sum-2].r*news[sum-1].c*news[sum-1].r;                news[sum-2].c=news[sum-1].c;                sum--;            }        }        if(flag==1)cout<<"error"<<endl;        else cout<<count<<endl;        memset(str,0,sizeof(str));    }    return 0;}

原创粉丝点击