UVa 10700 - Camel trading
题目大意:给一个不含括号、只有+和*运算的表达式,数字的范围在1到20之间,算出计算结果的可能最大值和最小值。
贪心,如果加法优先级比乘法高,那么得出的结果为最大值。(a+b)*c = a*c + b*c >= a+b*c。同理,如果乘法优先级比加法高,得出的结果为最小值。
#include <cstdio>
#include <cctype> int main()
{
#ifdef LOCAL
freopen("in", "r", stdin);
#endif
double lmin, lmax, lstack[];
int top;
int N;
scanf("%d", &N);
getchar();
char s[];
while (N--)
{
gets(s);
char ch = '+';
top = ;
for (int i = ; s[i] != '\0'; )
{
int n = ;
while (isdigit(s[i]))
{
n = n* + s[i]-'';
i++;
}
if (ch == '+') lstack[top++] = n;
else lstack[top-] *= n;
if (s[i] != '\0') ch = s[i++];
}
lmin = ;
for (int i = ; i < top; i++)
lmin += lstack[i];
top = ;
ch = '*';
for (int i = ; s[i] != '\0'; )
{
int n = ;
while (isdigit(s[i]))
{
n = n* + s[i]-'';
i++;
}
if (ch == '*') lstack[top++] = n;
else lstack[top-] += n;
if (s[i] != '\0') ch = s[i++];
}
lmax = ;
for (int i = ; i < top; i++)
lmax *= lstack[i];
printf("The maximum and minimum are %.0lf and %.0lf.\n", lmax, lmin);
}
return ;
}
也可以用动态规划,不过觉得可以用贪心就不想麻烦了。
UVa 10700 - Camel trading的更多相关文章
- UVA 10700 Camel trading 无括号的表达式 贪心
题意:给出只包含数字和+*的表达式,你可以自己安排每一个运算的顺序,让你找出表达式可能得到的最大值和最小值. 很明显,先乘后加是最小值,先加后乘能得到最大值. 其实不是很明显... 证明下: 数字的范 ...
- uva:10700 - Camel trading(贪婪)
题目:10700 - Camel trading 题目大意:给出一些表达式,表达式由数字和加号乘号组成,数字范围[1,20].这些表达式可能缺少了括号,问这种表达式加上括号后能得到的最大值和最小值. ...
- UVA 11054 Wine trading in Gergovia 葡萄酒交易 贪心+模拟
题意:一题街道上很多酒店,交易葡萄酒,正数为卖出葡萄酒,负数为需要葡萄酒,总需求量和总售出量是相等的,从一家店到另外一家店需要路费(路费=距离×运算量),假设每家店线性排列且相邻两店之间距离都是1,求 ...
- uva 11054 wine trading in gergovia (归纳【好吧这是我自己起的名字】)——yhx
As you may know from the comic \Asterix and the Chieftain's Shield", Gergovia consists of one s ...
- UVa 11054 Wine trading in Gergovia【贪心】
题意:给出n个等距离的村庄,每个村庄要么买酒,要么卖酒,买酒和卖酒的总量相等, 把k个单位的酒从一个村庄运送到相邻的村庄,需要耗费k个单位劳动力,问怎样运送酒使得耗费的劳动力最少 买 卖 ...
- UVa 11054 Wine trading in Gergovia
题意: 直线上有n个等距的酒庄,每个酒庄对酒的需求量为ai(正数说明需要买酒,负数需要卖酒),而且保证所有的酒庄供需平衡. 搬运x个单位的酒到相邻的酒庄需要x个劳动力,求要使所有酒庄供需平衡最少需要多 ...
- UVA 11054 Wine trading in Gergovia(思维)
题目链接: https://vjudge.net/problem/UVA-11054 /* 问题 输入村庄的个数n(2=<n<=100000)和n个村庄的数值,正代表买酒,负代表卖酒,k个 ...
- UVA10700:Camel trading(栈和队列)
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=68990#problem/J 题目大意: 给一个没有加上括号的表达式且只有+ , ...
- UVA - 11054 Wine trading in Gergovia 扫描法
题目:点击打开题目链接 思路:考虑第一个村庄,如果第一个村庄需要买酒,那么a1>0,那么一定有劳动力从第二个村庄向第一个村庄搬酒,这些酒可能是第二个村庄生产的,也可能是从其他村庄搬过来的,但这一 ...
随机推荐
- java项目开发第五天——奋力完成数据库
又一次成功地避开了UI界面,看来以后在这个部分得残了,无奈,心塞,不知为何.今天人品不好,大清早在群里签到居然和机器人聊起来了,顿时感觉智商被碾压,还下载了一个QQ空间背景复制器,看了看果真是实现了, ...
- 后台前台json传递数据的方式两种方式 $.get, $.getJSON
第一种getJSON方式: 前台调用: <td><input type="text" class="t" id="edutitle& ...
- JavaBean-- DAO设计模式
企业分层架构: 资源层:主要是数据库的操作层,里面可以进行各种数据存储,但是这些数据存储操作的时候肯定依靠SQL语句,如果在一个程序中出现过多的SQL语句,JSP页面非常复杂,不便于程序的可重用性 数 ...
- 用JavaScript 来将数字转换成字符。
背景: 一切嵌入式设备上面的信息,比如设备名称,设备时区是可以写入到设备上面的寄存器中的(一个寄存器两个字节,2*8 bit),比如 -1 ,写入到寄存器中为 2d31,然后可以通过一些进程将寄存器中 ...
- android脚步---UI界面修改,关于activity中增加按钮和监听
增加按钮和监听,这个和上个不同在于,它不是在一个dialog里面,而是从新写了一个activity,因此需要先找到这个activity的入口. case R.id.checkframe: if (mC ...
- js 鼠标事件
<html><head lang="en"> <meta charset="UTF-8"> <title>< ...
- Android CTS 测试总结【转】
Android CTS 测试总结[转] 最近一直在做Android兼容性测试,根据Android官网给出的android-cts-manual 配置好了device后,开始测试. 首先配置软件环境: ...
- [Java]读取文件方法大全(转)
[Java]读取文件方法大全 1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile { /** ...
- CodeForces 591A Wizards' Duel
水题 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> us ...
- PHP模板解析类实例
作者:mckee 这篇文章主要介绍了PHP模板解析类,涉及php针对模板文件的解析与字符串处理的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 <?php class template { ...