编程之美初赛第一场
来源:互联网 发布:vb语言的有什么好处 编辑:程序博客网 时间:2024/04/30 13:04
题目1 : 焦距
- 样例输入
25.4mm 5.27mm 1600px5400um 0.00527m 1600px
- 样例输出
Case 1: 1639.47pxCase 2: 1639.47px
描述
一般来说,我们采用针孔相机模型,也就是认为它用到的是小孔成像原理。
在相机坐标系下,一般来说,我们用到的单位长度,不是“米”这样的国际单位,而是相邻像素的长度。而焦距在相机坐标系中的大小,是在图像处理领域的一个非常重要的物理量。
假设我们已经根据相机参数,得到镜头的物理焦距大小(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)
#define DeBUG#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <algorithm>#include <vector>#include <stack>#include <queue>#include <string>#include <set>#include <sstream>#include <map>#include <bitset>using namespace std ;#define zero {0}#define INF 0x3f3f3f3f#define EPS 1e-6typedef long long LL;const double PI = acos(-1.0);//#pragma comment(linker, "/STACK:102400000,102400000")inline int sgn(double x){return fabs(x) < EPS ? 0 :(x < 0 ? -1 : 1);}double tomm(double a,string d){ if(d=="mm") return a; else if(d=="m") return a*1000; else if(d=="dm") return a*100; else if(d=="cm") return a*10; else if(d=="um") return a/1000.0; else if(d=="nm") return a/1000000.0;}int cnt=1;int main(){ #ifdef DeBUGs freopen("C:\\Users\\Sky\\Desktop\\1.in","r",stdin); #endif int T; scanf("%d", &T); double a,b,c; getchar(); while(T--) { char da[100],db[100],dc[100]; scanf("%lf%s %lf%s %lf%s",&a,da,&b,db,&c,dc); a=tomm(a,string(da)); b=tomm(b,string(db)); printf("Case %d: %.2lfpx\n",cnt++,c*a/b); } return 0;}
题目3 : 活动中心
- 样例输入
131 12 23 3
- 样例输出
Case 1: 1.678787
描述
A市是一个高度规划的城市,但是科技高端发达的地方,居民们也不能忘记运动和锻炼,因此城市规划局在设计A市的时候也要考虑为居民们建造一个活动中心,方便居住在A市的居民们能随时开展运动,锻炼强健的身心。
城市规划局希望活动中心的位置满足以下条件:
1. 到所有居住地的总距离最小。
2. 为了方便活动中心的资源补给和其他器材的维护,活动中心必须建设在A市的主干道上。
为了简化问题,我们将A市摆在二维平面上,城市的主干道看作直角坐标系平的X轴,城市中所有的居住地都可以看成二维平面上的一个点。
现在,A市的城市规划局希望知道活动中心建在哪儿最好。
输入
第一行包括一个数T,表示数据的组数。
接下来包含T组数据,每组数据的第一行包括一个整数N,表示A市共有N处居住地
接下来N行表示每处居住地的坐标。
输出
对于每组数据,输出一行“Case X: Y”,其中X表示每组数据的编号(从1开始),Y表示活动中心的最优建造位置。我们建议你的输出保留Y到小数点后6位或以上,任何与标准答案的绝对误差或者相对误差在10-6以内的结果都将被视为正确。
数据范围
小数据:1 ≤ T ≤ 1000, 1 ≤ N ≤ 10
大数据:1 ≤ T ≤ 10, 1 ≤ N ≤ 105
对于所有数据,坐标值都是整数且绝对值都不超过106
样例解释
样例1:活动中心的最优建造位置为(1.678787, 0)
#define DeBUG#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <algorithm>#include <vector>#include <stack>#include <queue>#include <string>#include <set>#include <sstream>#include <map>#include <bitset>using namespace std ;#define zero {0}#define INF 0x3f3f3f3f#define EPS 1e-7typedef long long LL;const double PI = acos(-1.0);//#pragma comment(linker, "/STACK:102400000,102400000")inline int sgn(double x){ return fabs(x) < EPS ? 0 : (x < 0 ? -1 : 1);}double fdis(double x1, double y1, double x2, double y2){ return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));}struct point{ double x, y;};point p[100005];int n;double get(double x){ double sum = 0; for (int i = 0; i < n; i++) { sum += fdis(p[i].x, p[i].y, x, 0); } return sum;}int cnt=1;int main(){#ifdef DeBUGs freopen("C:\\Users\\Sky\\Desktop\\1.in", "r", stdin);#endif int T; scanf("%d", &T); while (T--) { scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%lf%lf", &p[i].x, &p[i].y); } double l, r, mid, midmid; l = -1000000.0; r = 1000000.0; double mid_value, midmid_value; while (r - l > EPS) { mid = (l + r) / 2; midmid = (mid + r) / 2; mid_value = get(mid); midmid_value = get(midmid); if (mid_value < midmid_value) r = midmid; else l = mid; } printf("Case %d: %.7lf\n",cnt++,mid); } return 0;}
三分版题
- 编程之美 初赛第一场 竞价
- 编程之美初赛第一场 焦距
- 编程之美初赛第一场 树
- 编程之美初赛第一场 活动中心
- 编程之美初赛第一场 焦距
- 编程之美初赛第一场 树
- 编程之美初赛第一场 活动中心
- 2014编程之美初赛第一场
- 编程之美初赛第一场
- 编程之美(初赛第一场)
- 编程之美初赛第一场--焦距
- 编程之美初赛第一场 活动中心
- 编程之美初赛第一场--树
- 编程之美初赛第一场 树
- 编程之美初赛第一场_2014
- 编程之美初赛第一场 树
- 编程之美初赛第一场
- 编程之美 2014 初赛第一场
- DriverEntry的context
- 我的第一篇博客就写写我的工作吧
- html中head里的meta标签的用法
- 发布一个破解微软脚本加密算法的vbScript 脚本
- WEB的打印大全方法
- 编程之美初赛第一场
- error LNK2001: 无法解析的外部符号 ___wargv
- 黑马程序员-讲解Colletion共性方法学习日记
- XML是一种标识语言
- 编程之美(初赛第一场)
- Python入门教程-05 休闲一刻 文件重命名示例
- android File存储对象 File存储到SD卡
- xml与对象的相互转化
- E_mail地址判断函数