题目1 : 焦距

时间限制:2000ms
单点时限:1000ms
内存限制:256MB

描写叙述

一般来说。我们採用针孔相机模型,也就是觉得它用到的是小孔成像原理。

在相机坐标系下,一般来说,我们用到的单位长度。不是“米”这种国际单位,而是相邻像素的长度。而焦距在相机坐标系中的大小,是在图像处理领域的一个很重要的物理量。

如果我们已经依据相机參数,得到镜头的物理焦距大小(focal length),和相机胶片的宽度(CCD width),以及照片的横向分辨率(image width),则详细计算公式为:

Focal length in pixels = (image width in pixels) * (focal length on earth) / (CCD width on earth)

比方说对于Canon PowerShot S100, 带入公式得

Focal length in pixels = 1600 pixels * 5.4mm / 5.27mm = 1639.49 pixels

如今。请您写一段通用的程序,来求解焦距在相机坐标系中的大小。

输入

多组測试数据。首先是一个正整数T,表示測试数据的组数。

每组測试数据占一行,分别为

镜头的物理焦距大小(focal length on earth)

相机胶片的宽度(CCD width on earth)

照片的横向分辨率大小(image width in pixels)。单位为px。

之间用一个空格分隔。

输出

每组数据输出一行,格式为“Case X: Ypx”。

X为測试数据的编号,从1開始;Y为焦距在相机坐标系中的大小(focallength in pixels)。保留小数点后2位有效数字,四舍五入取整。

数据范围

对于小数据:focal length on earth和CCD width on earth单位都是毫米(mm)

对于大数据:长度单位还可能为米(m), 分米(dm), 厘米(cm), 毫米(mm), 微米(um),纳米(nm)

例子输入

2
5.4mm 5.27mm 1600px
5400um 0.00527m 1600px

例子输出

Case 1: 1639.47px
Case 2: 1639.47px
解析:这道题应该非常水吧。

可是比不上自己更水。小数据过了,大数据wa。刚才又一次看了自己的代码原来有个地方粗心了。唉……将毫米和米的单位处理错了,过去了就不说了,明天另一场,加油,水货从未想过进复赛,仅仅是在研究课题和做项目无聊的时候搞点acm充实一下,可能最重要的原因是回顾吧。以前跟本科的同学组队參加过省赛,以前没好好下功夫,如今好好练练。也算对自己參加过acm比赛一个交代。近期在编程之美、华为第六届编程赛。csdn编程赛。csdn俱乐部,校赛,都想试试玩玩哈!

贴一下自己改过的代码纪念一下哈!
#include <iostream>
#include <string>
#include <stdio.h>
#include <algorithm>
using std::endl;
using std::cin;
using std::cout;
using std::string;
//将字符串转换为double值
double change(const string &s)
{double result=0;;string temp("");//对字符串进行处理for(int i=0;i<s.length();++i){if(i==s.length()-1&&s[i]=='m'){//米的单位处理result=1000*atof(temp.c_str());break;}else if(s[i]=='d'){//分米的单位处理result=100*atof(temp.c_str());break;}else if(s[i]=='c'){//厘米的单位处理result=10*atof(temp.c_str());break;}else if(s[i]=='m'&&s[i+1]=='m'){//毫米的单位处理result=atof(temp.c_str());break;}else if(s[i]=='u'){//微米的单位处理result=atof(temp.c_str())/1000;break;}else if(s[i]=='p'){//像素单位的处理result=atof(temp.c_str());break;}else if(s[i]=='n'){//纳米的单位处理result=atof(temp.c_str())/1000000;break;}else{//数字和小数点的处理temp+=s[i];}}return result;
}
int main()
{int T;cin >>T;string str,str1,str2,str3;int cnt=0;while(T--){cnt++;cin >> str1 >> str2 >> str3;double a,b,c;a=change(str1);b=change(str2);c=change(str3);double result=0;result=a*c/b;cout << "Case "<< cnt<<": ";printf("%.2f",result);cout << "px" << endl;}return 0;
}

编程之美初赛第一场--焦距相关推荐

  1. 微软2014编程之美初赛第一场——题目3 : 活动中心

    [来源] 题目3 : 活动中心 [分析] 本题採用的是三分法. 输入的一组点中找出左右边界.作为起始边界. while(右边界-左边界<精度){将左右边界构成的线段均匀分成3段,推断切割点的距离 ...

  2. 2014编程之美初赛第一场

    题目1 : 焦距 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 一般来说,我们采用针孔相机模型,也就是认为它用到的是小孔成像原理. 在相机坐标系下,一般来说,我们用到的单 ...

  3. 2014编程之美初赛第二场

    题目1 : 神奇的数列 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 大神同学是一个热爱数字的孩子,她无时无刻不在思考生活与数学的联系.有一天,她发现其实公历的设计是有讲 ...

  4. 百度之星2009程序设计大赛 初赛第一场试题

    百度之星2009程序设计大赛 初赛第一场试题 2009年5月30日19:00-22:30(由于第二题出错,比赛时间延长半小时),2008百度之星大赛在线资格赛(初赛)展开.百度爱好者(Baiduer. ...

  5. 2017 计蒜之道 初赛 第一场 A题B题

    阿里九游开放平台近日上架了一款新的益智类游戏--成三棋.成三棋是我国非常古老的一个双人棋类游戏,其棋盘如下图所示: 成三棋的棋盘上有很多条线段,只能在线段交叉点上放入棋子.我们可以用坐标系来描述棋盘: ...

  6. 2021百度之星初赛第一场部分题解

    写在前面 几个家长要求我写一些2021百度之星初赛第一场的题解. 1003 鸽子 原题链接 https://acm.hdu.edu.cn/showproblem.php?pid=6998 http:/ ...

  7. 银联高校极客挑战赛 初赛 第一场、第二场合集(3+3题)

    第一场 A. 码队女朋友的王者之路 测试用例 测试1 4 5 2 2 00101 5 1 2 11110 6 2 3 000000 7 6 6 0000001 测试2 1 1 1 1 0 测试3 1 ...

  8. 2017百度之星初赛第一场题解

    前言 这场比赛我卡在线上了,没有进TAT 我只做了三道水题.. 首先是在比赛开始的时候我还在睡觉,我以为是2:30开始.. 然后,由于这个垃圾评测,卡死人了.. 于是我刷新一下,就算了我交了两次,于是 ...

  9. Astar2007初赛第一场的题目2

    今天查到了Astar2007的初赛题目,很感兴趣,便拿来做了一下,这是第二题. 2.大话西游与数字游戏 "叉烧鸡翅膀,我呀最爱吃!--",百度spider组的"黑龙潭之行 ...

最新文章

  1. 板邓:php获取数组元素个数
  2. android文件管理实现所应用到的技术,基于Android的文件管理系统的设计与实现
  3. 【模板】 全排列 有重复元素的全排列
  4. web安全day35:Linux防火墙进阶
  5. 一个网站 一个域名跟服务器吗,域名服务器与根服务器区别吗
  6. 根据城市的三字代码查询经纬度_中国国内机场三字码及经纬度
  7. 读养生四要有感《慎动篇》
  8. 【精通内核】CPU控制并发原理CPU中断控制内核解析
  9. [论文导读]Restoring and attributing ancient texts using deep neural networks深度学习复原古希腊铭文
  10. 树莓派 小型服务器的搭建
  11. 【Unity编辑器扩展实践】、扩展Hierarchy菜单
  12. 二维码生成软件如何生成汉信码
  13. 刚才玩了下Steganos Internet Anonym,IP伪装器,每一秒自动换一IP
  14. 使用函数指针来编写一个名叫sort的函数,它用于对一个任意类型的数组进行排序。
  15. oracle缓存文件,oracle的缓存
  16. 付呗聚合支付快速教程 分账篇③——多商户模式下分账提现全流程详解
  17. 正则表达式:检测密码由6-21字母和数字组成
  18. 汽车VIN码识别功能实现资料,轻松实现VIN码识别
  19. 司新颖:当番茄遭遇鸡蛋
  20. 干货 | 携程酒店RSocket实践

热门文章

  1. Centos6 系统下,已经安装vim的前提下。执行操作vim,出现报错
  2. pxe+kickstart 实现基于网络的无人值守安装操作系统
  3. java 接口定义(翻译自Java Tutorials)
  4. 全球所有货币币种汇总
  5. 企业云桌面-02-安装第2台域控制器和第2台DNS服务器-012-DC02
  6. Oracle数据库之PL/SQL程序基础设计
  7. U3D架构系列之- FSM有限状态机设计五
  8. Java中文编码小结
  9. 重新认识创业者与资本的博弈
  10. Linux下配置rdate时间服务器