[Swust OJ 188]--异面空间(读懂题意很重要)
2015-06-12 20:36
246 查看
题目链接:http://acm.swust.edu.cn/problem/188/
Time limit(ms): 1000 Memory limit(kb): 65535
江鸟来到了一个很奇怪的星球,这个星球上,有两个二维坐标系XX和YY,这两个坐标系之间的坐标存在如下函数关系式:
f(x)=x^2+2*x+3
f(y)=3*y+2
比如对于XX坐标系上的点(3,4)经过这一关系映射后得到YY坐标系上的点为(18,14)。这个映射关系一;同时,还有种映射关系是对于X坐标系上的点(a,b)和YY坐标系上的点(c,d)他们之间的距离为D=|a-d|+|b-c|。这是映射关系二.
因为对于XX坐标系上的每个点,在YY坐标系上都有唯一的点和它对应,现在对于XX和YY上的点按照映射关系二进行匹配,并且XX上的每个点都仅和YY上的一个点进行匹配,YY上的每个点也仅和XX上的一个点进行匹配,现在你的任务是找出所有可能匹配关系中D最大值的最小。
Description
第一行输入一个数case,代表下面测试数据的总数,以下每个case由两部分组成:
第一部分输入N,代表XX坐标系上有多少个点(1<=N<=100)
第二部分输入XX坐标系上这N个点的坐标 (xi,yi)(0<=xi<=500,0<=yi<=500)
Input
所有可能匹配关系中D最大值的最小
Output
Sample Input
Sample Output
解题思路:按照题意来就是了,但是所有 匹配关系中D最大值的最小 没懂起意思(各种wa),我也是醉了~~
求出所有的对应点,原点集和映射点集一一比对,有最大D时,
求此时原来的点对应映射点集的最小D
en~~,没听懂就看看代码吧,就这样~~~
代码如下:
View Code
Time limit(ms): 1000 Memory limit(kb): 65535
江鸟来到了一个很奇怪的星球,这个星球上,有两个二维坐标系XX和YY,这两个坐标系之间的坐标存在如下函数关系式:
f(x)=x^2+2*x+3
f(y)=3*y+2
比如对于XX坐标系上的点(3,4)经过这一关系映射后得到YY坐标系上的点为(18,14)。这个映射关系一;同时,还有种映射关系是对于X坐标系上的点(a,b)和YY坐标系上的点(c,d)他们之间的距离为D=|a-d|+|b-c|。这是映射关系二.
因为对于XX坐标系上的每个点,在YY坐标系上都有唯一的点和它对应,现在对于XX和YY上的点按照映射关系二进行匹配,并且XX上的每个点都仅和YY上的一个点进行匹配,YY上的每个点也仅和XX上的一个点进行匹配,现在你的任务是找出所有可能匹配关系中D最大值的最小。
Description
第一行输入一个数case,代表下面测试数据的总数,以下每个case由两部分组成:
第一部分输入N,代表XX坐标系上有多少个点(1<=N<=100)
第二部分输入XX坐标系上这N个点的坐标 (xi,yi)(0<=xi<=500,0<=yi<=500)
Input
所有可能匹配关系中D最大值的最小
Output
1 2 3 4 5 | 1 2 3 4 1 2 |
1 | 25 |
解题思路:按照题意来就是了,但是所有 匹配关系中D最大值的最小 没懂起意思(各种wa),我也是醉了~~
求出所有的对应点,原点集和映射点集一一比对,有最大D时,
求此时原来的点对应映射点集的最小D
en~~,没听懂就看看代码吧,就这样~~~
代码如下:
#include <iostream> #include <cmath> using namespace std; inline int mapping_x(int x){ return x*(x + 2) + 3; } inline int mapping_y(int y){ return 3 * y + 2; } inline int mapping_dis(int x, int y){ return abs(x - y); } int main(){ int t, n, i, j, k, maxn, Max, ptr[101][4]; cin >> t; while (t--){ cin >> n; Max = 0x7ffffff; for (i = 0; i < n; i++){ cin >> ptr[i][0] >> ptr[i][1]; ptr[i][2] = mapping_x(ptr[i][0]); ptr[i][3] = mapping_y(ptr[i][1]); } for (i = 0; i < n; i++){ for (maxn = j = 0; j < n; j++){ k = mapping_dis(ptr[i][0], ptr[j][3]) + mapping_dis(ptr[i][1], ptr[j][2]); maxn = maxn>k ? maxn : k; } Max = Max < maxn ? Max : maxn; } cout << Max << endl; } return 0; }
View Code
相关文章推荐
- user agent stylesheet 解决方法
- 设计一个算法,判断字符串S是否对称
- 缓存和缓冲的区别
- HMMSearchState API
- Binary Tree
- 三次方格取数
- Binary Tree 分类: POJ 2015-06-12 20:34 17人阅读 评论(0) 收藏
- 统计输入的字符串各个不同字符出现的频度,并存入文件,合法字符为:“A~Z”和“0~9”
- 6.12
- WordSearchState API
- asp.net mvc 中使用日期控件(My97DatePicker)(一)
- cocos2d-x项目打包成exe文件后的音乐无法播放问题
- Winform开发框架中实现同时兼容多种数据库类型处理
- Linguist API 语言专家
- SearchGraph API
- linux 命令——ls
- Codeforces 12D Ball (线段树)
- SearchStateArc API
- VS2010 基于MFC的扫雷demo
- Precision/Recall和ROC曲线