博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uva:10700 - Camel trading(贪婪)
阅读量:6279 次
发布时间:2019-06-22

本文共 1478 字,大约阅读时间需要 4 分钟。

题目大意:给出一些表达式,表达式由数字和加号乘号组成,数字范围【1,20】。这些表达式可能缺少了括号,问这种表达式加上括号后能得到的最大值和最小值。

解题思路:由于这些数的都是正整数,所以能够用贪心。不然看出最大值就是先做完加法在做乘法,最小值就是先做乘法在做加法。注意这里的数值要用long long 由于比表达式的值可能会超过int。

代码:

#include 
#include
const int N = 15;char op[N];char str[3 * N];long long num[N];long long caculate_max (int count) { long long temp[N]; for (int i = 0; i < count; i++) temp[i] = num[i]; for (int i = count - 2; i >= 0; i--) if (op[i] == '+') { temp[i] += temp[i + 1]; temp[i + 1] = temp[i]; } long long sum = temp[0]; for (int i = 0; i < count - 1; i++) { if (op[i] == '*') sum *= temp[i + 1]; } return sum;}long long caculate_min (int count) { long long temp[N]; for (int i = 0; i < count; i++) temp[i] = num[i]; for (int i = count - 2; i >= 0; i--) { if (op[i] == '*') temp[i] = temp[i] * temp[i + 1]; } long long sum = temp[0]; for (int i = 0; i <= count - 2; i++) { if (op[i] == '+') sum += temp[i + 1]; } return sum;}int init () { int t = 0; long long sum; scanf ("%s", str); for (int i = 0; i < strlen (str); i++) { if (str[i] == '+' || str[i] == '*') op[t++] = str[i]; else { sum = 0; while (str[i] >= '0' && str[i] <= '9') { sum = sum * 10 + str[i] - '0'; i++; } num[t] = sum; i--; } } return t + 1;}int main () { int t; int count; scanf ("%d", &t); while (t--) { count = init(); printf ("The maximum and minimum are %lld and %lld.\n", caculate_max(count), caculate_min(count)); } return 0;}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的文章
Vue组建通信
查看>>
用CSS画一个带阴影的三角形
查看>>
前端Vue:函数式组件
查看>>
程鑫峰:1.26特朗.普力挺美元力挽狂澜,伦敦金行情分析
查看>>
safari下video标签无法播放视频的问题
查看>>
01 iOS中UISearchBar 如何更改背景颜色,如何去掉两条黑线
查看>>
对象的继承及对象相关内容探究
查看>>
Spring: IOC容器的实现
查看>>
Serverless五大优势,成本和规模不是最重要的,这点才是
查看>>
Nginx 极简入门教程!
查看>>
iOS BLE 开发小记[4] 如何实现 CoreBluetooth 后台运行模式
查看>>
Item 23 不要在代码中使用新的原生态类型(raw type)
查看>>
为网页添加留言功能
查看>>
JavaScript—数组(17)
查看>>
Android 密钥保护和 C/S 网络传输安全理论指南
查看>>
以太坊ERC20代币合约优化版
查看>>
Why I Began
查看>>
同一台电脑上Windows 7和Ubuntu 14.04的CPU温度和GPU温度对比
查看>>
js数组的操作
查看>>
springmvc Could not write content: No serializer
查看>>