HDU 1050 Moving Tables(贪心)
来源:互联网 发布:js 计算时间间隔 天 编辑:程序博客网 时间:2024/06/06 00:53
http://acm.hdu.edu.cn/showproblem.php?pid=1050
题目大意:
在走廊的北边和南边各有200个房间 最近公司做出一个计划打算改革这个体系 这个改革就包括在这些房间之间移动很多桌子 因为走廊很狭窄 然后所有的桌子都很大 一次只有一个桌子能够通过这个走廊 这个计划需求就是要这个移桌子的过程更加有效率 经理弄清了这个计划定义:
1.把桌子从一个房间移动到另一个房间的时间是十分钟
2.当把一个桌子从i房间移动到j房间,这个走廊的i部分到j部分就是被使用过的。所以,在这个10分钟内,在这两个房间之间的走廊部分是不能再同时被使用的。
分析:
这个问题其实就是求最大重叠区域 因为在重叠区域是不能同时搬动多个桌子的 只有在一个搬完然后再其他搬
而非重叠区域搬桌子就可以同时进行 由于房间在南北两侧 所以 1->5 和 2->6 是不能同时进行的 要想求重叠的走廊区域 也很简单 1号房间和2号房间门前有一块公共走廊 我们就将 这一块块的走廊进行编号 从左到右依次是1、2、3、4、5。。。。。 我们发现房间门前的走廊编号刚好可以由 (房间号+1)/2 求得 基于此我们就可以求最大重叠区域了 也就是求经过得公共走廊的最大值
AC代码:
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int count0[205];int main (){ int t; scanf ("%d",&t); while (t--){ int n; scanf ("%d",&n); memset(count0,0,sizeof(count0)); int maxn=-1; for(int i=0;i<n;i++){ int l,r; scanf ("%d%d",&l,&r); if (l>r){// 如果从大放假走向小房间 就换一下 swap(l,r); } l=(l+1)/2;// 将房间号变成走廊号 r=(r+1)/2; for (int i=l;i<=r;i++){ count0[i]++; if (maxn<count0[i]){// 找到最大重叠 maxn=count0[i]; } } } printf ("%d\n",maxn*10); } return 0;}
阅读全文
0 0
- hdu 1050 Moving Tables (贪心)
- HDU -- 1050 Moving Tables(贪心,暴力)
- HDU-1050 Moving Tables (贪心)
- HDU 1050 Moving Tables(贪心)
- hdu 1050 Moving Tables(贪心)
- hdu 1050 Moving Tables (贪心)
- hdu 1050 moving tables 贪心
- hdu 1050 Moving Tables (贪心)
- HDU 1050 Moving Tables 贪心
- HDU--1050:Moving Tables (贪心)
- hdu 1050 Moving Tables(贪心)
- HDU-1050 Moving Tables 贪心
- HDU 1050 Moving Tables 贪心!!
- HDU 1050 Moving Tables (贪心)
- HDU 1050 Moving Tables (贪心)
- HDU 1050 Moving Tables(贪心)
- HDU Moving Tables (贪心)
- Moving Tables +hdu+贪心
- linux下的source命令
- 对C语言指针的总结
- 正则表达式
- Java注释@interface的用法
- 已知获得的RGB像素值为3维数组,将像素分别存入R、G、B 3个通道 Emgu Image方式读取的图像
- HDU 1050 Moving Tables(贪心)
- 理解深度学习的局限性
- 过滤器篇(1)-----用户登录验证过滤器(LoginFilter)
- Hadoop第10天-03.Map过程分析-combiner-partition
- maven打包依赖第三方包,但不打进jar包中
- doc,excel,ppt转存pdf并预览
- mybatis中的#{}和${}区别
- Excel/Word
- matlab 中的数据维数过大的时候怎么处理及技巧