1041: XX's easy problem

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 41  Solved: 7
[Submit][Status][Web
Board
]

Description

XX is a good student who likes to ask questions.But sometimes when you get the problem, you are not willing to answer his question bucause the problem is too easy.For example,He'll ask how much a + b is equal to, or how much a +
b is equal to,etc.
Today he just got a new problem,so he asks you for help:He has an expression of form x1 op x2 op x3.....xn,and op is just '+' or '*',xi(1 <= i <= n) a digits between 1 and 9。However, this problem is not so easy, you need to add one pair of brackets in this
expression so that to maximize the value of the resulting expression.

Input

The first line contains expression,x1 op x2 op x3.....xn(1 <= n <= 50),op is '+' or '*'.The answer maxmized dosen't exceed 2^63-1.

Output

In the first line print the maximum possible value of an expression.

Sample Input

1+2*3
2*2*2

Sample Output

9
8

哎西每次可以AC的时候先给我的CE真是醉了,HUST这个OJ真是有毒,字符串长度的unsigned和普通int都要分那么清楚。这题怎么说呢,做了我一个晚上+半个晚上(估计是我思路不太好,只能向麻烦的做法靠近)...试了各种方法,最后特判+巨烦的多次string重定向终于过了。恭喜下自己终于上60题,可以够到大神远远跑在前面留下的灰尘了....做法嘛没什么好说的,毫无算法,枚举所有括号的位置,然后按照括号和加法乘法优先级进行模拟运算再取max。

代码:

#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<sstream>
#include<cstring>
#include<cstdio>
#include<string>
#include<deque>
#include<cmath>
#include<queue>
#include<set>
#include<map>
using namespace std;
typedef long long LL;
string s;
inline LL fx(string s)//识别优先级的计算函数
{
LL i,cheng,tans;
for (i=0; i<(LL)s.size(); i++)
{
if(s[i]=='+')
s[i]=' ';
}
istringstream sin(s);
string temp;
LL t,sum=0;
while (sin>>temp)
{
for (i=0; i<(LL)temp.size(); i++)
{
if(temp[i]=='*')
temp[i]=' ';
}
istringstream ssin(temp);
tans=1;
while (ssin>>cheng)
{
tans=tans*cheng;
}
sum=sum+tans;
}
return sum;
}
inline string change(string s)//去括号并将括号内的数据进行计算并代回去
{
LL ans,len=(LL)s.size(),i,j,l=-1,r=-1;
string temp;
for (i=0; i<len; i++)
{
if(s[i]=='(')
{
l=i;
for (j=len-1; j>=i; j--)
{
if(s[j]==')')
{
r=j;
break;
}
}
break;
}
}
ans=fx(s.substr(l+1,r-l-1));
stringstream in;
in<<ans;
in>>temp;
s.replace(l,r-l+1,temp);
return s;
}
int main (void)
{
ios::sync_with_stdio(false);
LL i,j;
LL maxx,t;
string t1,t2,t3,t4;
while (getline(cin,s))
{
if(s.size()==1)
{
cout<<s<<endl;
continue;
}
LL len=s.size();
maxx=-9999999;
for (i=0; i+2<len; i+=2)//枚举所有括号位置(括号内至少两个数)
{
for (j=i+2; j<len; j+=2)
{
t3=s;
t1=s.substr(i,j-i+1);
t2=t3.erase(i,j-i+1);
t2.insert(i,'('+t1+')');
t4=change(t2);
t=fx(t4);
if(t>maxx)
{
maxx=t;
}
}
}
cout<<maxx<<endl;
}
return 0;
}

ACM程序设计选修课——1041: XX's easy problem(神烦的多次字符串重定向处理)的更多相关文章

  1. ACM程序设计选修课——Problem E:(ds:图)公路村村通(优先队列或sort+克鲁斯卡尔+并查集优化)

    畅通工程 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  2. ACM程序设计选修课——Problem D: (ds:树)合并果子(最优二叉树赫夫曼算法)

    Problem D: (ds:树)合并果子 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 80  Solved: 4 [Submit][Status][ ...

  3. ACM程序设计选修课——Problem E:(ds:图)公路村村通(Prim)

    问题 E: (ds:图)公路村村通 时间限制: 1 Sec  内存限制: 128 MB 提交: 9  解决: 5 题目描述 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本, ...

  4. ACM程序设计选修课——Problem F:(ds:图)旅游规划(优先队列+SPFA)

    问题 F: (ds:图)旅游规划 时间限制: 1 Sec  内存限制: 128 MB 提交: 14  解决: 4 题目描述 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路 ...

  5. ACM程序设计选修课——1018: Common Subsequence(DP)

    问题 L: Common Subsequence 时间限制: 1 Sec  内存限制: 32 MB 提交: 70  解决: 40 [提交][状态][讨论版] 题目描述 A subsequence of ...

  6. ACM程序设计选修课——1043: Radical loves integer sequences(YY)

    1043: Radical loves integer sequences Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 36  Solved: 4 ...

  7. ACM程序设计选修课——1076汇编语言(重定向+模拟)

    1076: 汇编语言 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 34  Solved: 4 [Submit][Status][Web Board] ...

  8. ACM程序设计选修课——1057: Beautiful Garden(模拟+耐心调试)

    1057: Beautiful Garden Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 25  Solved: 12 [Submit][Statu ...

  9. ACM程序设计选修课——1065: Operations on Grids(暴力字符串)

    1065: Operations on Grids Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 17  Solved: 4 [Submit][Sta ...

随机推荐

  1. 使用nodejs和Java访问远程服务器的服务

    既然这篇文章用的是nodejs和Java访问远程服务器的服务,那么咱们先用另一门编程语言,SAP的ABAP(我日常工作使用得最多的编程语言)来开发一个服务吧. 这是我用ABAP编程语言实现服务的类:Z ...

  2. java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config

    今天写SpringMvc时,遇到这样一个问题: java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config at org.sp ...

  3. vue 文件流下载xlsx 功能实现

    downLoadFile (url, name) { this.xhr = new XMLHttpRequest() this.xhr.open('GET', url, true) this.xhr. ...

  4. springboot(二十一)-集成memcached

    Memcached 介绍 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站 ...

  5. JDK的安装以及环境变量的配置

    一.JDK的安装 1.百度搜索jdk1.8 2.进入网页选择Downloads 3. 选择电脑的版本(x86 32位 x64 64位) 4.下载好后,直接双击即可,一直下一步即可完成安装 二.环境变量 ...

  6. s///|s()()i|/i|/g|\U|\u|\L|\l|\U\l|split|join|匹配到hash|匹配到变量|`date`|$^I

    #!/usr/bin/perl -w use strict; use warnings; $_='She is a good girl and likes helping others '; s/sh ...

  7. centos 安装 python3 分类链接

    上一篇文章描述了如何安装python3,但是在后续安装pip便不断报出缺少各类模块,安装一个又需要依赖另一个,导致安装过程非常繁琐.究其原因,我是安装centos-minimal版本,有许多功能不是完 ...

  8. 让Web站点崩溃最常见的七大原因

    转载自: https://blog.csdn.net/u012981511/article/details/53503242 1. 磁盘已满 导致系统无法正常运行的最可能的原因是磁盘已满.一个好的网络 ...

  9. 有关git clone 下载速度变慢的解决方法

    使用提示:请注意一下,以下方法是在搭有梯子的情况下进行的,也就是说在有梯子的情况下,下载速度始终很慢,使用了以下方法用梯子下载达到正常速度,并没有尝试修复过后不用梯子下载. 所以,如果使用了以下方法, ...

  10. python中文件操作的六种模式及对文件某一行进行修改的方法

    一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...