模拟停车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\n",ans);
    }
    return 0;
}

时间: 2024-11-09 12:55:57

模拟停车POJ(3505)的相关文章

java多线程模拟停车系统

import java.util.Random; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.Semaphore; import java.util.concurrent.SynchronousQueue; import sun.awt.geom.AreaOp.IntOp; /** * * @author

第七章定制并发类

Java 7 并发编程实战手册目录 代码下载(https://github.com/Wang-Jun-Chao/java-concurrency) 第七章定制并发类 7.1简介 Java并发API提供了大量接口和类来实现并发应用程序.这些接口和类既包含了底层机制,如Thread类.Runnable接口或Callable接口.synchronized关键字,也包含了高层机制,如在Java 7中增加的Executor框架和Fork/Join框架.尽管如此,在开发应用程序时,仍会发现己有的Java类无

poj1936

非连续子串匹配题,直接模拟 /** \brief poj 1936 * * \param date 2014/8/5 * \param state AC * \return memory 804k time 0ms * */ #include <iostream> #include <fstream> #include <cstring> using namespace std; const int MAXN=100000; char s[MAXN]; char t[M

浅谈Scala对象构造过程

我们通过一个例子来体会scala对象的构造过程 首先创建一个车站类: class Station { val size = 100 val spots = new Array[String](size) } 通过size来模拟停车位数,通过字符串数组模拟具体的停车位. 在创建一个停车场类,它是车站的子类 class Park extends Station { override val size = 20 } 停车场没有车站那么多车位,只拥有20个,因此在Park中重写了Station的size

POJ 3087 Shuffle&#39;m Up (模拟+map)

题目链接:http://poj.org/problem?id=3087 题目大意:已知两堆牌s1和s2的初始状态, 其牌数均为c,按给定规则能将他们相互交叉组合成一堆牌s12,再将s12的最底下的c块牌归为s1,最顶的c块牌归为s2,依此循环下去. 现在输入s1和s2的初始状态 以及 预想的最终状态s12.问s1 s2经过多少次洗牌之后,最终能达到状态s12,若永远不可能相同,则输出"-1". 解题思路:照着模拟就好了,只是判断是否永远不能达到状态s12需要用map,定义map<

POJ 2993 Emag eht htiw Em Pleh 模拟

http://poj.org/problem?id=2993 模拟大法好. 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 char q[10],w[100]; 6 char e[10],r[100]; 7 char white[12]= {'K','Q','R','B','N','P'}; 8 char black[12]= {'k','q','r

模拟/poj 3087 Shuffle&#39;m Up

1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 char s1[110],s2[110],ss[220]; 5 int len,n; 6 7 int f() 8 { 9 int ans=0; 10 char t1[110],t2[110],tt[220]; 11 strcpy(t1,s1);strcpy(t2,s2); 12 while (1) 13 { 14 ans++; 15 for (int i=

POJ 3344 &amp; HDU 2414 Chessboard Dance(模拟)

题目链接: PKU:http://poj.org/problem?id=3344 HDU:http://acm.hdu.edu.cn/showproblem.php?pid=2414 Description Another boring Friday afternoon, Betty the Beetle thinks how to amuse herself. She goes out of her hiding place to take a walk around the living r

POJ 1068--Parencodings--括号逆匹配(模拟)

Parencodings Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 19655   Accepted: 11870 Description Let S = s1 s2...s2n be a well-formed string of parentheses. S can be encoded in two different ways: q By an integer sequence P = p1 p2...pn