swust oj 188--异面空间(读懂题意很重要)

题目链接: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

1

2

3

4

5

1

2

3 4

1 2

Sample Input

1

25

Sample Output

解题思路:按照题意来就是了,但是所有  匹配关系中D最大值的最小  没懂起意思(各种wa),我也是醉了~~

     求出所有的对应点,原点集和映射点集一一比对,有最大D时,

     求此时原来的点对应映射点集的最小D

     en~~,没听懂就看看代码吧,就这样~~~

代码如下:

 1 #include <iostream>
 2 #include <cmath>
 3 using namespace std;
 4
 5 inline int mapping_x(int x){
 6     return x*(x + 2) + 3;
 7 }
 8 inline int mapping_y(int y){
 9     return 3 * y + 2;
10 }
11 inline int mapping_dis(int x, int y){
12     return abs(x - y);
13 }
14 int main(){
15     int t, n, i, j, k, maxn, Max, ptr[101][4];
16     cin >> t;
17     while (t--){
18         cin >> n;
19         Max = 0x7ffffff;
20         for (i = 0; i < n; i++){
21             cin >> ptr[i][0] >> ptr[i][1];
22             ptr[i][2] = mapping_x(ptr[i][0]);
23             ptr[i][3] = mapping_y(ptr[i][1]);
24         }
25         for (i = 0; i < n; i++){
26             for (maxn = j = 0; j < n; j++){
27                 k = mapping_dis(ptr[i][0], ptr[j][3]) + mapping_dis(ptr[i][1], ptr[j][2]);
28                 maxn = maxn>k ? maxn : k;
29             }
30             Max = Max < maxn ? Max : maxn;
31         }
32         cout << Max << endl;
33     }
34     return 0;
35 }

时间: 2024-12-29 06:39:17

swust oj 188--异面空间(读懂题意很重要)的相关文章

HDU 4930 Fighting the Landlords (超级暴力+读懂题意)

题目链接:HDU 4930 Fighting the Landlords 斗地主!!.不会玩这游戏,真是苦逼.题意其他都还好,就是要注意只要第一个回合1号玩家能压制2号玩家就算赢了(突破点). 其他就分类暴力了,思路还是比较清晰的. 注意点: 1.对方炸弹,必输 2.一回合就出完牌,必胜 AC代码: #include<stdio.h> #include<string.h> int vis1[30],vis2[30]; int find(char s) { if(s=='T') re

读懂自己

如果你是一棵大树,就撒下一片阴凉:如果你是一泓清泉,就滋润一方土地:如果你是一棵小草,就增添一分绿意.如果你是一朵鲜花,就点缀一角夜空.如果你是一片白云,就装扮一方晴空.如果你是一只蜜蜂,就酿造一份甜蜜:如果你是一缕阳光,就照亮所有黑暗.如果你是一丝清风,就吹走世间的尘埃.如果你是一阵春风,就吹绿田野的庄稼.古有一句话"读人时反思自己".愈是读别人缺点的时候,愈应反思自己.读自己,以取长补短,使自己不犯与别人同样滑稽的错误. 人们一直提倡读书,读好书,但是很少提及要好好读自己.看清别人

一篇文章,读懂Netty的高性能架构之道

一篇文章,读懂Netty的高性能架构之道 Netty是由JBOSS提供的一个java开源框架,是一个高性能.异步事件驱动的NIO框架,它提供了对TCP.UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果. 作为当前最流行的NIO框架,Netty在互联网领域.大数据分布式计算领域.游戏行业.通信行业等获得了广泛的应用,一些业界著名的开源组件也基于Netty的NIO框

读懂diff【转】

本文转载自:http://www.ruanyifeng.com/blog/2012/08/how_to_read_diff.html 读懂diff 作者: 阮一峰 日期: 2012年8月29日 diff是Unix系统的一个很重要的工具程序. 它用来比较两个文本文件的差异,是代码版本管理的基石之一.你在命令行下,输入: $ diff <变动前的文件> <变动后的文件> diff就会告诉你,这两个文件有何差异.它的显示结果不太好懂,下面我就来说明,如何读懂diff. 一.diff的三种

读懂diff(转载)

本文转载于:http://www.ruanyifeng.com/blog/2012/08/how_to_read_diff.html 版权所有归原作者 1. 前言 diff是Unix系统的一个很重要的工具程序. 它用来比较两个文本文件的差异,是代码版本管理的基石之一.你在命令行下,输入: diff就会告诉你,这两个文件有何差异.它的显示结果不太好懂,下面我就来说明,如何读懂diff. 2. diff的三种格式 由于历史原因,diff有三种格式: 我们依次来看. 3. 示例文件 为了便于讲解,先新

读懂diff

转自:http://www.ruanyifeng.com/blog/2012/08/how_to_read_diff.html 作者: 阮一峰 日期: 2012年8月29日 diff是Unix系统的一个很重要的工具程序. 它用来比较两个文本文件的差异,是代码版本管理的基石之一.你在命令行下,输入: $ diff <变动前的文件> <变动后的文件> diff就会告诉你,这两个文件有何差异.它的显示结果不太好懂,下面我就来说明,如何读懂diff. 一.diff的三种格式 由于历史原因,

为什么计算机能读懂 1 和 0 ?

问题:为什么计算机能读懂 1 和 0 ? 从小到大,我们被告知的都是,计算机只能读懂1和0,但我好奇的是为什么计算机它就能够读懂1和0呢,它是怎么读懂的?读懂后,又是怎样进行工作的呢?嗯...我想问的就是,最最基本原始的那个工作原理 回答: 萧井陌,私信问题不回,请提问邀请 玉来了 既然是问最最原始的那个工作原理... 从小到大,我们被告知的都是,计算机只能读懂1和0,但我好奇的是为什么计算机它就能够读懂1和0呢,它是怎么读懂的?读懂后,又是怎样进行工作的呢?嗯...我想问的就是,最最基本原始的

嵌入式系统 Boot Loader 技术内幕----仅此一篇读懂bootloader

嵌入式系统 Boot Loader 技术内幕----仅此一篇读懂bootloader 本文详细地介绍了基于嵌入式系统中的 OS 启动加载程序 ―― Boot Loader 的概念.软件设计的主要任务以及结构框架等内容. 1. 引言 在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行.一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 1. 引导加载程序.包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分. 2. Li

读懂IL代码就这么简单(二)

一 前言 IL系列 第一篇写完后 得到高人指点,及时更正了文章中的错误,也使得我写这篇文章时更加谨慎,自己在了解相关知识点时,也更为细致.个人觉得既然做为文章写出来,就一定要保证比较高的质量,和正确率 .感谢 @冰麟轻武 的指点 你没有看第一篇?  点这里看第一篇 读懂IL代码就这么简单(一) IL指令大全 :IL指令详解 IL反编译工具: ILDasm 知识点回顾: Managed Heap(托管堆):用于存放引用类型的值 Evaluation Statck(计算栈):临时存放值类型数据,引用