zoukankan      html  css  js  c++  java
  • [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 }
    View Code
  • 相关阅读:
    IIC/I2C从地址之7位,8位和10位详解
    ARM uxtw
    ARM(CM3)的汇编指令
    WZR/XZR ARM
    LDR r, label 和 LDR r, =label的区别
    Distinguishing between 32-bit and 64-bit A64 instructions
    03JavaScript程序设计修炼之道_2019-06-18_20-39-14_事件onload&onmouseover&out
    02-CSS基础与进阶-day6_2018-09-05-20-18-21
    02-CSS基础与进阶-day5_2018-09-03-22-10-39
    02-CSS基础与进阶-day5_2018-09-03-21-41-57
  • 原文地址:https://www.cnblogs.com/zyxStar/p/4572519.html
Copyright © 2011-2022 走看看