zoukankan      html  css  js  c++  java
  • HDU1050 Moving tables

    题目大意:在一个长走廊里面搬桌子。走廊的两側都是房间,把桌子从一个房间搬到还有一个房间,走廊的宽度每次仅仅同意搬一个桌子。每次搬桌子须要10分钟,问最少多长时间办完。

    输入:第一个数t代表測试用例,接下里是n,表示要搬的桌子的总数,接着n行代表每一个桌子从房间i搬到房间j

    输出:最少须要的时间


    解题思路:

            首先考虑。给出的每次须要搬的房间号,实际情况中是可能从大的房间号往房间号小的房间搬,因此,在读入数据时刻同一时候做一个方便接下来的处理的操作,就是保证每次都是从房间号小的朝着大的搬,结果是一样的(由于对于占用走廊的情况是同样的)

            还有一方面,能够想到通过进行某种处理来标示这段走廊已被占用。通过累加这样的走廊的重叠占用情况。来得到最大的重叠数。因为1-400个房间是在走廊两側双向分布的,所以房间1和房间2是公用的同一段走廊,因此在累积标识的时候能够採用一个count[205]数组。


    代码例如以下:

    # include <iostream>
    # include <algorithm>
    using namespace std;
    
    int main()
    {
    	//freopen("input.txt","r",stdin);
    	int t;
    	scanf("%d",&t);
    	while(t--)
    	{
    		int n,time;
    		scanf("%d",&n);
    		int count[205];
    		memset(count,0,sizeof(count));
    		int i,j,x,y,s,e;
    		for(i=1;i<=n;i++)
    		{
    			scanf("%d%d",&x,&y);
    			if(x>y)
    			{
    				int temp;
    				temp=x;
    				x=y;
    				y=temp;
    			}
    			s=(x+1)/2;
    			e=(y+1)/2;
    			for(j=s;j<=e;j++)
    			{
    				count[j]++;
    			}
    		}
    		int maxc=0;
    		for(i=1;i<201;i++)
    		{
    			if(maxc<count[i])
    				maxc=count[i];
    		}
    		time=maxc*10;
    		printf("%d
    ",time);
    	}
    	return 0;
    }



  • 相关阅读:
    校验字符的表达式
    校验数字的表达式
    Html和xhtml有什么区别
    VUE3.0 + TS 项目实战 (2)基本写法
    VUE3.0 + TS 项目实战 (1)初始化项目
    props传递函数以及$emit触发父组件方法
    rollup
    js函数式编程
    移动端双击事件
    JS节流与防抖
  • 原文地址:https://www.cnblogs.com/llguanli/p/7403712.html
Copyright © 2011-2022 走看看