题目链接:推桌子

题目意思:给你一些操作,将S出的桌子推到L出,但是这个过道有时会被占用,推一次是10min,不影响的操作可以同时开始,并且只记一次。

思路:贪心,首先按照S从小到大排序,决策:从第一个开始找最长的一条可以同时进行的操作,循环操作。

易错点:1 这里的操作不是一定 S> L的 会有L< S

    2  给你一个例子就知道了,  1 3

                   4 5  这个操作的时候这个正确的应该是20,为什么,自己看图就知道了

代码:

#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std; typedef struct numb
{
int l,r;
}numb; numb a[205]; bool fun(numb x,numb y)
{
return x.l < y.l ? true:false;
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int n;
scanf("%d",&n);
int i;
memset(a,0,sizeof(a));
for(i = 0; i < n; i++)
{
scanf("%d%d",&a[i].l,&a[i].r);
if(a[i].l > a[i].r)
{
int ans = a[i].l;
a[i].l = a[i].r;
a[i].r = ans;
}
}
sort(a,a+n,fun);
int t = 0;
int max = 0;
int j = 0;
int flag = 1;
while(flag)
{
for(j = 0; j < n; ++j)
{if(a[j].l != 0)
{
max = a[j].r;
a[j].l = 0;
a[j].r = 0;
break;
}
if( j+1 == n)
{
flag = 0;
break;
}
}
if(!flag)
break;
t++;
for(i = j+1; i < n; i++)
{
if(max %2 == 1)
{
if(a[i].l > max +1)
{
max = a[i].r;
a[i].l = 0;
a[i].r = 0;
} }
else
if(a[i].l > max)
{
max = a[i].r;
a[i].l = 0;
a[i].r = 0;
}
}
}
printf("%d\n",t*10);
}
return 0;
}

nyist 220 推桌子的更多相关文章

  1. nyoj 220——推桌子——————【贪心】

    推桌子 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 The famous ACM (Advanced Computer Maker) Company has re ...

  2. nyoj220 推桌子(贪心算法)

    这道题太坑了,from 和to有可能写反,还得正过来: 推桌子 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 The famous ACM (Advanced Co ...

  3. ACM 推桌子

    推桌子 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 The famous ACM (Advanced Computer Maker) Company has re ...

  4. ny220 推桌子

    推桌子 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 The famous ACM (Advanced Computer Maker) Company has rent ...

  5. iOS---iOS10适配iOS当前所有系统的远程推送

    一.iOS推送通知简介 众所周知苹果的推送通知从iOS3开始出现, 每一年都会更新一些新的用法. 譬如iOS7出现的Silent remote notifications(远程静默推送), iOS8出 ...

  6. socket.io简单入门(一.实现简单的图表推送)

    引子:随着nodejs蓬勃发展,虽然主要业务系统因为架构健壮性不会选择nodejs座位应用服务器.但是大量的内部系统却可以使用nodejs试水,大量的前端开发人员转入全堆开发也是一个因素. 研究本例主 ...

  7. nyist 518 取球游戏

    http://acm.nyist.net/JudgeOnline/problem.php?pid=518 取球游戏 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 今 ...

  8. 采用PopupWin控制消息推送功能

    最近的项目需要,急需实现消息推送功能.接连试了很多办法,让我们用JavaScript为了实现啊,其效果是不咋好,最后,我发现了一个PopupWin这个,看着眼前的成绩不错,开始使用. 1.准备工作.先 ...

  9. Android端 配置极光推送

    由于业务须要,androidclient须要加推送.原来採用的百度推送.可是小米手机有时候收不到.后来换成了极光推送,极光的话全部设备都能收到推送,可是在高峰的时候会推迟.博主说的免费版的,收费的没用 ...

随机推荐

  1. GCD 的初步认识

    1.什么是 GCD? GCD为Grand Central Dispatch的缩写 (GCD)是Apple开发的一个多核编程的较新的解决方法.它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统 ...

  2. 20151113--JSTL

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  3. shell基础认识

    Shell 我们在终端下写命令Linux内核是看不懂的必须通过shell解释成内核可执行的代码 这就是shell(其实解释命令这只是它的一个功能模块,shell还可以用来进行程序设计) 有点类似win ...

  4. < meta > 元素 概要

    < meta > 元素 概要 标签提供关于HTML文档的元数据.元数据不会显示在页面上,但是对于机器是可读的.它可用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 we ...

  5. JavaScript 你好!

    JavaScript简介 开发时间:1995年 开发目的:一开始的目的是处理以前由服务器端语言(如perl)负责的一些输入验证操作. 现状:现在的用途不再局限于简单的数据验证,而是具备了与浏览器窗口及 ...

  6. Java定时器:Timer

    项目中往往会遇到需要定时的任务,例如订单,当用户在某个规定时间内没有操作订单时,订单状态将会发生改变. 那么在这种情况下,我们会用到定时器. 举例: import java.util.Timer; / ...

  7. 迁移到gitbook

    现在要迁移到gitbook啦, 一些note类分享就只在gitbook发了, 其他一些比较长的分享会第一时间发到gitbook,但也会在这边同步 我的gitbook

  8. SQL Server 一些重要视图4

    sys.master_files 为每一个数据库的每一个文件返回行.

  9. C++ Placement New

    先看一个题目: #include <stdio.h> #include <iostream> using namespace std; struct Base { int j; ...

  10. [Leetcode][Python]27: Remove Element

    # -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 27: Remove Elementhttps://oj.leetcode.c ...