题目链接:推桌子

题目意思:给你一些操作,将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. Eclipse 完全 设置UTF-8 环境

    当开始一个新的Java项目时,最好将整个环境设置为UTF-8 一般通过如下几步来设置: 1: 设置工作空间的编码格式:Window -> Preferences -> General -& ...

  2. js关闭 window.open 打开的页面

    1.关闭 当前页面 window.opener = null; window.open('', '_self', ''); window.close(); 但是在FF中就是不行: 2.项目中情况是通过 ...

  3. 读取本地HTML的小说阅读器应用源码项目

    该源码是一个不错的读取本地HTML的小说阅读器,读取本地HTML的小说阅读器,并且源码也比较简单的,非常适合我们的新手朋友拿来学习,有兴趣的朋友研究下. 源码下载: http://code.662p. ...

  4. try.jquery-5-styling里的各种css样式操作

    你好,这里是我的http://try.jquery.com/学习笔记: 这次来学习操作各种css. 主要对这段html元素进行操作. <div id="all-tours"& ...

  5. 关于C语言中结构体中的结构体成员导致的字节对齐问题

    关于结构体的字节对齐是什么,就不赘述,再此附上一篇文章,介绍字节对齐:http://www.linuxsong.org/2010/09/c-byte-alignment/ 这里的结构体字节对齐的数据类 ...

  6. HTML 5 drag and drop 简介

    Html 5 drag and drop 简介 HTML5提供了专门拖拽和拖放的API draggable属性 启用拖拽 draggable属性是否可被拖拽, 可选值: true, false, au ...

  7. Cpp again

    1,

  8. Android之SplashActivity的巧妙之处

    众所周知,我们很多应用都会有一个SplashActivity,用来当作进入应用的第一个过度界面,显示一个logo信息.如下所示,是我的简洁天气的SplashActivity. 但是,它的作用仅仅只是用 ...

  9. nodejs开发微信1——微信access-token和tickets的数据模型

    /* jshint -W079 */ /* jshint -W020 */ "use strict"; //var _ = require("lodash"); ...

  10. ADO.NET FOR MySQL帮助类

    using System; using System.Collections; using System.Collections.Specialized; using System.Data; usi ...