POJ1083

POJ1083题解

POJ1083

解题重点在如下几个地方

题很简单,一定要看题目里面的那个图。要注意的只有一点,房间1和2前面是同一个走廊,所以从1移动到2只需要占用一个走廊,房间2和3前面不是同一个走廊,因此从2移动到3需要占用2个走廊。基本思路是开辟一个200的数组,表示所有房间前面的走廊,每个元素初始化为0,如果从m移动到n(假设m小于n,但是在程序中处理输入时需要判断两个数大小),则把m对应走廊位置的编号到n对应走廊位置的编号所对应的所有数组元素都+10,这样处理完每个桌子后,遍历整个数组寻找最大的一个元素,即为实际的需要时间
【注】一开始想错了,还以为是操作系统中作业调度问题,给我整懵了都

SOURCE

质量

Problem: 1083       User: 20132430222
Memory: 220K        Time: 16MS
Language: C++       Result: Accepted

源码

// 1083.cpp : 定义控制台应用程序的入口点。
//

//#include "stdafx.h"

#include <iostream>
#include <vector>

using namespace std;

typedef struct mypair
{
    int s;
    int t;
}mypair;

int main(){
    vector<int> result;
    int corridor[200]={0};
    int max;
    mypair tmp;
    int NumOfCases;
    int NumOfLines;
    cin>>NumOfCases;
    while(NumOfCases>0){
        int s,b;
        cin>>NumOfLines;
        while(NumOfLines>0){
            cin>>tmp.s>>tmp.t;
            if((tmp.s%2)!=0)
                tmp.s = (tmp.s/2) + 1;
            else
                tmp.s = tmp.s/2;
            if((tmp.t%2)!=0)
                tmp.t = (tmp.t/2) + 1;
            else
                tmp.t = tmp.t/2;
            if(tmp.s>tmp.t){
                b = tmp.s;
                s = tmp.t;
            }else{
                b = tmp.t;
                s = tmp.s;
            }
            for(int i = s;i<=b;i++){
                corridor[i-1] = corridor[i-1] + 10;
            }
            NumOfLines--;
        }
        max = corridor[0];
        corridor[0] = 0;
        for(int i = 1;i<200;i++){
            if(max < corridor[i])
                max = corridor[i];
            corridor[i] = 0;
        }
        result.push_back(max);
        NumOfCases--;
    }
    for(vector<int>::iterator it = result.begin();it != result.end();it++){
        cout<<(*it)<<endl;
    }
    return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值