HDU 5938 && 2016CCPC杭州 F: Four Operations
程序员文章站
2022-04-28 14:48:15
...
题意:
将+-x/四个符号按顺序塞入一串字符中,让它成为一个表达式
求表达式能得到的最大值
枚举'-'的位置,'x'一定挨着'-'的后面,'/'一定挨着'x'的后面
然后'+'的位置要不在'-'的前面一个,要不在第一个数后面
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define LL long long
char 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;
}
上一篇: php strrev() 反转字符串,将字符串颠倒
下一篇: php wordwrap函数怎么用