http://acm.hdu.edu.cn/showproblem.php?pid=1082

这题开始想复杂了,error并不包括表达式本身不合法的情况

我的方法是遇到右括号就开始处理栈,如果开始最外层没有括号,就人为加上

数据应该是比较弱的,一通乱搞

#include <iostream>
#include <cstdio>
#include <cstring>
#include <stack> using namespace std ;
int n ; struct Mat
{
int op ;
int r,c ;
}M[] ;
Mat cc[] ;
char s[],ss[] ;
int main()
{
scanf("%d",&n) ;
for(int i= ;i<n ;i++)
{
char op[] ;
scanf("%s%d%d",op,&M[i].r,&M[i].c) ;
M[i].op=op[] ;
}
int tt=n ;
while(~scanf("%s",s))
{
n=tt ;
int len=strlen(s) ;
if(s[]!='(')
{
for(int i= ;i<=len ;i++)
ss[i]=s[i-] ;
ss[]='(' ;ss[len+]=')' ;
len+= ;
for(int i= ;i<len ;i++)
s[i]=ss[i] ;
}
int flag= ;
for(int i= ;i<len ;i++)
{
if(s[i]=='(' || s[i]==')')
{
flag= ;
break ;
}
}
int ans= ;
int ct= ;
stack <int> st ;
flag= ;
for(int i= ;i<len ;i++)
{
if(s[i]!=')')
{
st.push(s[i]) ;
}
else
{
int cnt= ;
while()
{
if(st.empty())break ;
if(st.top()=='(')
{
st.pop() ;
break ;
}
int temp=st.top() ;
st.pop() ;
for(int j= ;j<n ;j++)
{
if(M[j].op==temp)
{
cc[cnt++]=M[j] ;
break ;
}
}
}
for(int j=cnt- ;j>= ;j--)
{
if(cc[j+].c==cc[j].r)
{
ans+=(cc[j+].r*cc[j+].c*cc[j].c) ;
}
else
{
flag= ;
break ;
}
cc[j].r=cc[j+].r ;
}
if(!flag)break ;
cc[].op=ct++ ;
M[n++]=cc[] ;
st.push(cc[].op) ;
}
if(!flag)break ;
}
if(flag)printf("%d\n",ans) ;
else puts("error") ;
}
return ;
}

HDU 1082的更多相关文章

  1. hdu 1082, stack emulation, and how to remove redundancy 分类: hdoj 2015-07-16 02:24 86人阅读 评论(0) 收藏

    use fgets, and remove the potential '\n' in the string's last postion. (main point) remove redundanc ...

  2. Uva442 hdu 1082 Matrix Chain Multiplication

    要注意取出来的时候 先取出q的是后面那个矩阵 后取出p的是前面的矩阵 所以是判断 p.a == q.b #include <iostream> #include <stack> ...

  3. HDU——PKU题目分类

    HDU 模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 ...

  4. [转] HDU 题目分类

    转载来自:http://www.cppblog.com/acronix/archive/2010/09/24/127536.aspx 分类一: 基础题:1000.1001.1004.1005.1008 ...

  5. HDU ACM 题目分类

    模拟题, 枚举1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 104 ...

  6. HDU 5643 King's Game 打表

    King's Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5643 Description In order to remember hi ...

  7. 转载:hdu 题目分类 (侵删)

    转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...

  8. hdu 分类

    HDU分类 http://www.cnblogs.com/ACMan/archive/2012/05/26/2519550.html#2667329 努力A完.方便自己系统A题 不断更新中...... ...

  9. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

随机推荐

  1. Ansible :一个配置管理和IT自动化工具

    编译文章:LCTT  https://linux.cn/article-4215-1.html 译者: felixonmars 文章地址:https://linux.cn/article-4215-1 ...

  2. MVC中view页面用jquery方法绑定select控件值

    var sortid = '@Model.myWorkMatter.WorkMatterSortID'; $("#selectSort").val(sortid); $(" ...

  3. 自定义Encoder/Decoder进行对象传递

    转载:http://blog.csdn.net/top_code/article/details/50901623 在上一篇文章中,我们使用Netty4本身自带的ObjectDecoder,Objec ...

  4. VBA读取文件夹下所有文件夹及文件内容,并以树形结构展示

    Const TR_LEVEL_MARK = "+"Const TR_COL_INDEX = "A"Const TR_COL_LEVEL = "E&qu ...

  5. JavaScript基本类型值与引用类型值

    前言 JS变量可以用来保存两种类型的值:基本类型值和引用类型值.基本类型的值源自一下5种基本数据类型:Underfined.Null.Boolean.Number和String. 基本类型值和引用类型 ...

  6. html标签marquee实现走马灯效果(文字浮动)

    marquee标签实现文字或图片的移动效果 <marquee direction = "right">文字<marquee>

  7. 封装自己的JS库

    一.基础知识 1.点击计数 第一种: var aBtn=document.getElementsByTagName('input'); var i=0; for(i=0;i<aBtn.lengt ...

  8. JAVA与指针

    首先,提个问题:JAVA中没有指针,JAVA中有指针,哪个一个对呢? 答:都对,JAVA中没有指针,因为我们不能对指针直接操作,像C++那样用->来访问变量. JAVA有指针,因为JDK中封装了 ...

  9. mysql 远程连接

    4.现在如果用你电脑上的终端进行MySQL连接时,有可能出现如下错误: MySQL远程连接ERROR 2003 (HY000):Can't connect to MySQL server on'XXX ...

  10. 【第41套测试题NOIP2007】【排序】【DP】【高精度】【树】【图上路径】

    先说点题外话,这两天的入学考试,炸了……语文有史以来最差,数学有史以来最差……还有4科,估计全炸……悲痛的心情,来调程序.这套题是8.31考的,从昨天晚上开始改的,因为第三题迟迟不想写,才拖到了现在. ...