题目链接:推桌子

题目意思:给你一些操作,将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. 微信sdk (1)

    <?php /** * wechat php test */ //define your token define("TOKEN", "weixin"); ...

  2. Lua与C++的交互

    这篇文章说的挺详细的:Lua与C++的交互

  3. LintCode (9)Fizz Buzz

    下面是AC代码,C++风格: class Solution { public: vector<string> fizzBuzz(int N) { vector<string> ...

  4. c#接口和new关键字和属性访问器基础收获

    1.interface 对于接口,一把我在项目中会这样使用: interface IStudent { string Name(); string GoSchool(); } 但是呢,这样有个不好的地 ...

  5. 加密传输SSL协议7_SSL协议概述

    SSL(Secure Sockets Layer) SSL的功能,可以在通信的双方中建立一个加密的通信通道 同时还可以确认通信的双方是不是就是其声称的人,防止被钓鱼. SSL在网络协议栈中的位置:可以 ...

  6. [springMVC]javax.servlet.jsp.JspTagException: Neither BindingResult nor plain target object for bean

    问题描述: 页面使用标签<form:form>进行提交时,出现[springMVC]javax.servlet.jsp.JspTagException: Neither BindingRe ...

  7. android sdk 更新问题——截止2014年6月10日有效

    因为墙的原因,很多人的sdk都更新不了,下面记录了我刚刚实现更新的方法: 进到Android SDK Manager,菜单Tools->Options..,这时弹出一个框,在这个框的下面Othe ...

  8. 数字证书管理工具keytool常用命令介绍

    需要给一个apk加签名,用到了keytool这个工具,下面转载一篇介绍keytool的文章 http://blog.chinaunix.net/uid-17102734-id-2830223.html ...

  9. UEFI引导系统

    UEFI引导系统 1 2 3 4 5 6 7 分步阅读 现在的电脑大多数使用了UEFI引导系统(原来都是使用BIOS),从而加快启动速度,但同时也给用惯BIOS的用户带来很多困惑!为啥电脑不能识别制作 ...

  10. Oracle EBS-SQL (SYS-14):查询表空间1.sql

    SELECT d.status "状态",           d.tablespace_name "名称",           d.contents &qu ...