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 ...
随机推荐
- TDD入门demo
OK,前面的博客整理了一系列的junit相关内容,这里举一个例子TDD实际的编码例子,不管实际编码中是否使用TDD,个人觉得这种思想必须要有. 我们不一定在写业务代码之前一定要说是把测试类都写出来,至 ...
- Asp.net core 2.0.1 Razor 的使用学习笔记(三)
ASP.net core 2.0.0 中 asp.net identity 2.0.0 的基本使用(二)—用户账户及cookie配置 修改用户账户及cookie配置 一.修改密码强度和用户邮箱验证规则 ...
- Bilibili/DanmakuFlameMaster: Android开源弹幕引擎·烈焰弹幕使 ~ JNI source:Bilibili/NativeBitmapFactory
https://github.com/Bilibili/DanmakuFlameMaster
- ios GCD将异步转换为同步
在开发中有时需要等网络请求完成之后拿到数据做一些操作,而且有时是同时好几个网络请求同时发起.这时会有对异步操作进行更进一步控制的场景,不单网络请求,有时一些其他本地文件,多张图片处理等可能都会遇到这种 ...
- 浅谈GlusterFS
GlusterFS 标签(linux): 分布式文件系统 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 图片来自于官网:http://gluster.readt ...
- 【Thinkphp 5】 整合邮箱类 phpmailer实现邮件发送
第一步:下载phpmailer文件,主要用到的文件只有箭头指向的两个,thinkphp5中,把class.phpmailer.php改成了phpmailer.php 第二步: 将phpmailer文件 ...
- 聊聊js里面容易忽视的一些东西(1)
JavaScript对象的创建方式 在JavaScript中,创建对象的方式包括两种:对象字面量和使用new表达式.对象字面量是一种灵活方便的书写方式,例如: 1 2 3 4 5 6 var o1 ...
- [DeeplearningAI笔记]ML strategy_1_1正交化/单一数字评估指标
机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.1 什么是ML策略 机器学习策略简介 情景模拟 假设你正在训练一个分类器,你的系统已经达到了90%准确 ...
- 窗口缩小div内容隐藏看不到怎么解决?
div的宽度设置为100%,并设置其背景颜色,但当窗口发生变化出现横向滚动条,拉滚动条的时候发现右面是空白的. 解决方法:body{min-width:1024px},给body加上一个最小宽度.ie ...
- ssh 设置私钥实现两台linux主机无密码访问
在服务器主机上(称为A主机) 创建公钥与私钥: ssh-keygen -t rsa 一路回车,如果想设置密码短语,在提示 passphrase 的时候设置密码短语 查看生成的公钥及私钥: ls ~/. ...