HDU 5938 && 2016CCPC杭州 F: Four Operations

来源:互联网 发布:摄影后期知乎 编辑:程序博客网 时间:2024/05/29 15:11



题意:

将+-x/四个符号按顺序塞入一串字符中,让它成为一个表达式

求表达式能得到的最大值


枚举'-'的位置,'x'一定挨着'-'的后面,'/'一定挨着'x'的后面

然后'+'的位置要不在'-'的前面一个,要不在第一个数后面

#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define LL long longchar str[25], ch;int main(void){LL T, i, n, a, b, c, d, e, ans, cas = 1;scanf("%lld", &T);while(T--){ans = -5252532;scanf("%s", str+1);n = strlen(str+1);for(i=2;i<=n-3;i++){c = str[i+1]-'0';d = str[i+2]-'0';sscanf(str+i+3, "%lld", &e);a = str[1]-'0';ch = str[i+1];str[i+1] = 0;sscanf(str+2, "%lld", &b);str[i+1] = ch;ans = max(ans, a+b-c*d/e);ch = str[i];str[i] = 0;sscanf(str+1, "%lld", &a);str[i] = ch;b = str[i]-'0';ans = max(ans, a+b-c*d/e);}printf("Case #%lld: %lld\n", cas++, ans);}return 0;}

原创粉丝点击