HDU 5938 Four Operations(四则运算)
HDU 5938 Four Operations(四则运算)
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Problem Description - 题目描述
- 小Ruins是个好学的男孩纸,最近他在学四则运算!
- 现在他打算练练四则运算。此处有个由数字'' - ''组成的字符串,依次添加'+', '-', '*' , '/'这四个运算符把字符串划分为5个部分,再算出结果(/ 使用整数除法)。
- 帮他找出可以获得的最大值吧!
CN
- 第一行为一个整数T,表示测试用例的数量。
- 每个测试用例为一个仅由数字 ''-'' 组成的字符串。
- 数据范围
- <= T <= ^
- <= 字符串长度 <=
CN
Output - 输出
- 对于每组测试用例,输出"Case #x: y",x表示从1开始的用例编号,y为结果。
CN
Sample Input - 输入样例
- 1
- 12345
Sample Output - 输出样例
- Case #1: 1
题解
模拟水题。
一个只有5个部分,可以写成A+B-C*D/E
要使结果最大,则A+B最大,C*D/E最小
A+B最大,加号要么在第一位数后面,要么在最后一位数前面。
C*D/E最小,C和D都是1位数,E只有可能是1~3位数,到3位数的时候已经为0了。
所以最多只要就算三次即可,注意初始化。
代码 C++
- #include <cstdio>
- #include <cstring>
- #include <algorithm>
- #define ll __int64
- char data[];
- int main(){
- int t, it, i, j, len;
- ll opt, l, r, L, R, L10, R10;
- for (it = scanf("%d ", &t); it <= t; ++it){
- opt = (ll) << ;
- gets(data); len = strlen(data);
- L = ; L10 = ;
- for (i = ; i < len - ; ++i, L10 *= ) L = L * + data[i] - '';
- L10 /= ;
- R = ; R10 = ;
- j = std::min(, len - );
- for (i = ; i <= j; ++i){
- R = (data[len - i] - '')*R10 + R;
- R10 *= ;
- l = std::max(L / L10 + L % L10, L / + L % );
- L10 /= ; L /= ;
- r = (data[len - i - ] - '')*(data[len - i - ] - '') / R;
- opt = std::max(opt, l - r);
- }
- printf("Case #%d: %I64d\n", it, opt);
- }
- return ;
- }
HDU 5938 Four Operations(四则运算)的更多相关文章
- HDU 5938 Four Operations 【贪心】(2016年中国大学生程序设计竞赛(杭州))
Four Operations Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- HDU 5938 Four Operations 【字符串处理,枚举,把数字字符串变为数值】
Problem Description Little Ruins is a studious boy, recently he learned the four operations! Now he ...
- HDU 5938 Four Operations(乱搞)题解
题意:把'+', '-', '*' 和'/'按顺序插入任意两数字间隔,使得操作得到后计算后最大. 思路:没想到是个水题,打的时候想得太复杂了.这道题其实只要考虑*和/.显然我们要把a*b/c弄到最小. ...
- HDU 6351 Naive Operations(线段树)
题目: http://acm.hdu.edu.cn/showproblem.php?pid=6315 Naive Operations Time Limit: 6000/3000 MS (Java/O ...
- HDU 6315 Naive Operations(线段树区间整除区间)
Problem DescriptionIn a galaxy far, far away, there are two integer sequence a and b of length n.b i ...
- hdu 6315 Naive Operations (2018 Multi-University Training Contest 2 1007)
Naive Operations Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 502768/502768 K (Java/Other ...
- HDU 6315: Naive Operations
Naive Operations Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 502768/502768 K (Java/Other ...
- HDU-DuoXiao第二场hdu 6315 Naive Operations 线段树
hdu 6315 题意:对于一个数列a,初始为0,每个a[ i ]对应一个b[i],只有在这个数字上加了b[i]次后,a[i]才会+1. 有q次操作,一种是个区间加1,一种是查询a的区间和. 思路:线 ...
- 杭电多校第二场 hdu 6315 Naive Operations 线段树变形
Naive Operations Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 502768/502768 K (Java/Other ...
随机推荐
- ios枚举规范
- Python--循环语句
Python 循环语句 循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式: Python提供了for循环和while循环(在Python中没有do..while循 ...
- mybatis比较数字或者单字母
http://blog.csdn.net/alibert/article/details/50177017 <if test="req.queryType == '3'.toStrin ...
- Web服务之LNMMP架构及动静分离实现
原文链接:http://hoolee.blog.51cto.com/7934938/1413346 讲的非常详细,尽管我只看动静分离,可是看了一下其他的部署,也是非常不错,适合新手 一.LNMMP ...
- Linux系统安装-系统分区
ctrl+alt+enter全屏
- [Struts2] Action Implements SessionAware
struts2 的Action中若希望访问Session对象,可采用两种方式: 1.从ActionContext中获取: 2.实现SessionAware接口. 1.从ActionContext中获取 ...
- html5,格式的验证
<form action="" method="get"> <input type="text" name=&quo ...
- 【原创】如何在Android Studio下调试原生安卓Framework层面的源代码
1. Open Existing Android Studio Project. 2. 打开后, Projects -> Android 里面是空的. 这时候,需要选到 Projects-> ...
- 实现一个自适应网页用到的css知识
1 div导致父级高度没有变化是应该子元素设置了float:left等 2 div元素居中 text-align:center; margin-left: auto;margin-right: 3 大 ...
- 从零开始调用一个手机号归属地查询API
自从过上程序员的生活,身边总是或多或少的提及一些API(应用程序接口),网上各种入门教程.实例大把大把,有的只是贴上部分代码,也不给注释, 写Demo的时候连编译都无法通过.下面我从小白开始来介绍下调 ...