zoukankan      html  css  js  c++  java
  • 模拟停车POJ(3505)

    题目链接:http://poj.org/problem?id=3505

    解题报告:

    #include <stdio.h>
    #include <iostream>
    #include <math.h>
    #include <algorithm>
    
    using namespace std;
    
    #define MAX 2600
    
    struct Point{
        int x;
        int y;
    }cars[MAX];
    
    int mov[60];        ///每层停车场只有多少个停车位
    
    int main()
    {
        int  T;
        scanf("%d",&T);
        while(T--)
        {
            int h;  ///层数
            int l;  ///每层多少个位置
    
            scanf("%d%d",&h,&l);
            int sum=0;  ///总共有多少辆汽车
    
            for(int i=0;i<h;i++)
            {
                for(int j=0;j<l;j++)
                {
                    int tmp;    ///车的编号
                    scanf("%d",&tmp);
                    if(tmp!=-1)
                    {
                        cars[tmp].x=i;
                        cars[tmp].y=j;
                        sum++;
                    }
                }
            }
    
            memset(mov,0,sizeof(mov));
    
            int ans=0;
            ///拿车
            for(int i=1;i<=sum;i++)
            {
                ans+=cars[i].x*20;
                int dis;
                dis=min(abs(cars[i].y-mov[cars[i].x]),l-abs(cars[i].y-mov[cars[i].x]));
                ans+=dis*5;
                mov[cars[i].x]=cars[i].y;   ///存下转盘当前位置
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    HttpClientUtil
    JacksonUtils
    spring-security oauth2.0简单集成
    python连接mysql
    钉钉机器人消息体
    Android Studio gradle
    Android Studio从Eclipse导项目
    Docker
    Unity WebGL
    主席树
  • 原文地址:https://www.cnblogs.com/TreeDream/p/5390392.html
Copyright © 2011-2022 走看看