关闭

pku 1771Elevator Stopping Plan

546人阅读 评论(0) 收藏 举报

有两道Elevator Stopping Plan,做了一道,另一道也顺便过了

方法是二分+贪心

一旦时间确定了,就可以用贪心来处理,只要保证每个人在时限之内到达,如果成功就进一步缩时间,不能就放宽时限。

还有一道也是这样做的。 3388 Japanese puzzle,二分枚举最大行数,一旦行数确定了,就可以用贪心的方式,看能否达到。

http://acm.pku.edu.cn/JudgeOnline/problem?id=1064,这个也是的,二分枚举+验证。

/*change from 1774*/
#include <iostream>
#define N 30001
using namespace std;

bool stop[N];
int n;
int stk[N];

bool satisfy(int t)
{
    int I,J=0,nStop=0;
    
    I=(t/20+1+1); // below(not including) walk
    while (I<n)
    {
        while (I<n && stop[I] == false) ++I;
        if (I>=n) return true;
        if ((I-1)*4 + nStop*10>t)
            return false;
        J = (t + 4 + 20*I - 10*nStop)/24; // elevator stops here
        I = (t + 16*J + 4 -10*nStop)/20 +1; // below (not inclu.) ok
        ++ nStop;
  
    } 
    return true;
}
void print(int t)
{
    int I,J=0,nStop=0;
    
    I=(t/20+1+1); // below(not including) walk
    while (I<n)
    {
        while (I<n && stop[I] == false) ++I;
        
        if (I>=n) break;
        
        J = (t + 4 + 20*I - 10*nStop)/24; // elevator stops here
        I = (t + 16*J + 4 -10*nStop)/20 +1; // below (not inclu.) ok
		stk[nStop] = J;
        ++ nStop;
    }
	printf("%d",nStop);
	for (int I=0; I<nStop; ++I)
	{
		printf(" %d",stk[I]);
	}
	printf("/n");
}

int main()
{
    int I,J;
    int high;
    
    while (scanf("%d",&n)!=EOF)
    {
        if (n==0) break;
        
        memset(stop,0,sizeof(stop));
        
        high=0;
        
        for (I=0; I<n; ++I)
        {
            scanf("%d",&J);
            high=max(high,J);
            stop[J] = true;
        }
        
        int maxt, mint, midt;
        
        maxt=12*high+24;
        mint=0;
        
        n = high+1;
        
        while (mint<=maxt)
        {
            midt=(mint+maxt)/2;
            
            if (satisfy(midt))
            {
                maxt=midt-1;
            }
            else
            {
                mint=midt+1;
            }
        }
        
        printf("%d/n",mint);
		print(mint);
    }
}
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

ACM PKU 题目分类(完整整理版本)

DP:  1011   NTA                 简单题  1013...
  • qq_16542775
  • qq_16542775
  • 2016-03-06 17:35
  • 1263

explain plan for 执行计划中各字段各模块描述

一、执行计划中各字段的描述   1、基本字段(总是可用的)         Id           ...
  • kk185800961
  • kk185800961
  • 2013-04-08 11:12
  • 2320

CTS中自定义(新增)一项测试计划Plan

CTS中自定义(新增)一项测试计划Plan查看官网并没有找到自定义plan的具体操作,只是告诉你可以新建,于是自己琢磨了下,发现还真能跑起来,下面说下方法: 说明: $android-cts指的是...
  • cxq234843654
  • cxq234843654
  • 2016-09-13 14:12
  • 1727

贪心算法之Elevator Stopping Plan

Elevator Stopping Plan Description ZSoft Corp. is asoftware company in GaoKe Hall. And the workers...
  • hqf1992
  • hqf1992
  • 2015-08-16 10:30
  • 766

Android学习路线(十四)Activity生命周期——停止和重启(Stopping and Restarting)一个Activity

" 正确地停止和重启你的activity在activity的生命周期中是一个很重要的过程,这样能够确保你的用户感觉到你的应用一直都活着并且没有丢失进度。你的activity的停止和重启时有几个重要的...
  • zk50yqpb
  • zk50yqpb
  • 2014-08-11 17:28
  • 101

《iOS Human Interface Guidelines》——Starting and Stopping

本文翻译自苹果官方文档《iOS Human Interface Guidelines》——Starting and Stopping,讲解启动和停止
  • Cloudox_
  • Cloudox_
  • 2015-09-30 20:17
  • 730

Android学习路线(十四)Activity生命周期——停止和重启(Stopping and Restarting)一个Activity

Activity 类提供了这两个生命周期方法,onStop() 和onRestart(),来允许你指定如何处理activity被停止和重启的情况。不像暂停状态,有一部分UI被遮挡,停止状态下UI完全不...
  • sweetvvck
  • sweetvvck
  • 2014-08-09 02:04
  • 2351

SPOJ 1771 Yet Another N-Queen Problem 解题报告(Dancing Link)

1771. Yet Another N-Queen Problem Problem code: NQUEEN After solving Solution to...
  • kbdwo
  • kbdwo
  • 2014-04-30 09:03
  • 743

Stopping and Restarting an Activity

Properly stopping and restarting your activity is an important process in the activity lifecycle tha...
  • u010882955
  • u010882955
  • 2015-02-09 09:29
  • 228

spoj 1771 Yet Another N-Queen Problem

https://www.spoj.pl/problems/NQUEEN/ 精确覆盖,每个格子为行,行、列、两条对角线为列 所以矩阵大小为 n*n*(6*n-2),dfs的时候当深度大于n就可以退出了...
  • ywhorizen
  • ywhorizen
  • 2011-10-01 18:37
  • 723
    个人资料
    • 访问:42674次
    • 积分:833
    • 等级:
    • 排名:千里之外
    • 原创:37篇
    • 转载:6篇
    • 译文:0篇
    • 评论:4条
    文章分类