BUNOJ 1011
字符串处理的题。原题链接
AC代码:
#include<cstring>
#include<cstdio>
#include<string>
#include<iostream>
#include<cmath>
using namespace std;
double res[3]; //res[0]~U res[1]~I res[2]~P
char unit[]={'V','A','W'};
char name[]={'U','I','P'};
double solve(int *t,int len)
{
int pos;
for(int i=0;i<len;++i)
{
pos=i;
if(t[i]==-1) break;
}
if(pos==len-1) pos++;
int len1=pos,len2=len-pos-1;
double ans=0.00;
pos=0;
for(int i=len1-1;i>=0;--i)
ans+=pow(10.0,i)*t[pos++];
pos++;
for(int i=1;i<=len2;++i)
ans+=pow(0.1,i)*t[pos++];
return ans;
}
int main()
{
int T;
scanf("%d",&T);
int cnt=0;
string str;
while(T--)
{
for(int i=0;i<3;++i) res[i]=-1.0;
getchar();
getline(cin,str);
printf("Problem #%d\n",++cnt);
for(int i=0;i<str.size();++i)
{
if(str[i]!='=') continue;
int j=i+1,len=0;
int t[20];
while(str[j]>='0'&&str[j]<='9'||str[j]=='.')
{
if(str[j]=='.') t[len++]=-1;
else t[len++]=str[j]-'0';
++j;
}
double x=solve(t,len);
if(str[j]=='m') x*=0.001;
else if(str[j]=='k') x*=1000;
else if(str[j]=='M') x*=1000000;
if(str[i-1]=='U') res[0]=x;
else if(str[i-1]=='I') res[1]=x;
else if(str[i-1]=='P') res[2]=x;
}
int pos;
for(int i=0;i<3;++i)
{
if(res[i]==-1) pos=i;
}
double ans=0.0;
if(pos==0) ans=res[2]/res[1];
else if(pos==1) ans=res[2]/res[0];
else if(pos==2) ans=res[0]*res[1];
printf("%c=%.2f%c\n\n",name[pos],ans,unit[pos]);
}
return 0;
}
如有不当之处欢迎指出!!
BUNOJ 1011的更多相关文章
- SCNU 2015ACM新生赛初赛【1001~1011】个人解题思路
题目1001: 大意:已知$n$个角色,$m$种怪物种族,$k$个怪物,给出一组角色编号,编号$P_{i}$的角色能肝死编号$i$的怪物,对于给定的一组怪物编号,为了打通关 ...
- Ural 1011. Conductors
1011. Conductors Time limit: 2.0 secondMemory limit: 64 MB Background Everyone making translations f ...
- poj 1011
http://poj.org/problem?id=1011 这是一道POJ的搜索的题目,最开始确实难以理解,但做过一些搜索的题目后,也没那么难了. 大概题意就是,现在有N根木头,要拼成若干根木头,并 ...
- (状压) Marriage Ceremonies (lightOJ 1011)
http://www.lightoj.com/volume_showproblem.php?problem=1011 You work in a company which organizes mar ...
- DFS(剪枝) POJ 1011 Sticks
题目传送门 /* 题意:若干小木棍,是由多条相同长度的长木棍分割而成,问最小的原来长木棍的长度: DFS剪枝:剪枝搜索的好题!TLE好几次,终于剪枝完全! 剪枝主要在4和5:4 相同长度的木棍不再搜索 ...
- HDU 1011 (树形DP+背包)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1011 题目大意:树上取点,先取父亲,再取儿子.每个点,权为w,花费为cost,给定m消费总额,求最大 ...
- 1011 最大公约数GCD
1011 最大公约数GCD 基准时间限制:1 秒 空间限制:131072 KB 输入2个正整数A,B,求A与B的最大公约数. Input 2个数A,B,中间用空格隔开.(1<= A,B < ...
- PAT乙级 1011. A+B和C (15)
1011. A+B和C (15) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 给定区间[-231, 231 ...
- 2016年10月26日 星期三 --出埃及记 Exodus 19:10-11
2016年10月26日 星期三 --出埃及记 Exodus 19:10-11 And the LORD said to Moses, "Go to the people and consec ...
随机推荐
- js 抛物线 笔记备份
var funParabola = function(element, target, options) { /* * 网页模拟现实需要一个比例尺 * 如果按照1像素就是1米来算,显然不合适,因为页面 ...
- eclipse-java开发实用快捷键
Expand All:ctrl+小键盘* Collapse All:ctrl+shift+小键盘/
- Tomcat常用操作
Tomcat简介 TOMCAT是APACHE JAKARTA软件组织的一个子项目,TOMCAT是一个JSP/SERVLET容器,它是在SUN公司的JSWDK(JAVA SERVER WEB DEVEL ...
- 什么是Servlet,Servlet的作用,生命周期,如何创建、配置Servlet
什么是Servlet,作用是? servlet是一个基于java技术的WEB组件,运行在服务器端,我们利用 sevlet可以很轻松的扩展WEB服务器的功能,使它满足特定的应用需要.servlet由se ...
- Ajax发送数据
- Redis进阶实践之九 独立封装的RedisClient客户端工具类
一.引言 今天开始有关Redis学习的第九篇文章了,以后肯定会大量系统使用Redis作为缓存介质,为了更好的更好的Redis,自己写了两个工具类,但是这两个工具类,没有提供一致的接口,是为了使用的独立 ...
- Android图像数据传递到C++的一些坑
最近在做一个Android图象识别的app, 通过相机预览或者是拍照功能获取图像数据,然后将图像数据传递到本地C++的图像识别so库.在这个过程中花的时间最多的就是数据传输问题.谨以此坑,警示未来! ...
- bzoj 4562 [Haoi2016]食物链
4562: [Haoi2016]食物链 Time Limit: 10 Sec Memory Limit: 128 MB Description 如图所示为某生态系统的食物网示意图,据图回答第1小题 ...
- Effective Java 之-----谨慎的覆盖clone方法
1.概述 如果clone方法返回一个由构造器创建的对象,它就得到有错误的类.因此,如果覆盖了非final类中的clone方法,则应该返回一个通过调用super.clone得到的对象.如果类的所有超类都 ...
- elk5.4小白踩坑记录
搭建请参考:http://www.ywnds.com/?p=9776 搭建步骤:http://www.ywnds.com/?p=9776 初步解方案:先不用管这个提示,当你创建完索引后,接受数据后.一 ...