HDU--1050:Moving Tables (贪心)

2023-11-15

1. 题目源地址:http://acm.hdu.edu.cn/showproblem.php?pid=1050

2. 解题思路:

        将每个输入的起始房间和结束房间转换为房间前面的区间,按区间起始位置从小到大排序。首先取第一个区间,后续如果有区间的起始位置在该区间的终止位置之后,则这两个区间的操作可以同时进行。借用visited[]控制操作的次数,最后输出操作次数值ans。

3. 解题代码:

//HOJ--1050:Moving Tables
#include<iostream>
#include<algorithm>
#include<memory.h>
using namespace std;

struct node
{
   int from;
   int to;
}cooridor[210];

int cmp(node a,node b)
{
    if(a.from != b.from)
       return a.from < b.from;
    else 
       return a.to < b.to;
}

int main()
{
    int caseNum,N,i,j,k,ans;
    int start,end,visited[210];
    cin>>caseNum;
    while(caseNum--)
    {
       cin>>N;
       for(i=0;i<N;i++)
       {
          cin>>start>>end;
          if(start>end)
          {
             k=start;
             start=end;
             end=k;
          }
          cooridor[i].from=(int)(start+1)/2;
          cooridor[i].to=(int)(end+1)/2;
       }
       
       sort(cooridor,cooridor+N,cmp);
       memset(visited,0,sizeof(visited));
       
       ans=0;
       int temp;
       for(i=0;i<N;i++)
       {
          if(visited[i])
             continue;

          ans++;
          visited[i]=1;
          temp=cooridor[i].to;
          
          for(j=i+1;j<N;j++)
          {
             if(!visited[j] && cooridor[j].from>temp)
             {
                visited[j]=1;
                temp=cooridor[j].to;
             }
          }
       }
       cout<<ans*10<<endl;
    }
    return 0;
}


4. 其他解法:

         将每个输入的起始房间和结束房间转换为房间前面的区间,求出每个区间将被占用的次数。占用的次数最大值即为需要分开操作(而不能同时移动桌子)的次数。

//HOJ--1050:Moving Tables
#include<iostream>
#include<memory.h>
using namespace std;

struct node
{
   int from;
   int to;
}cooridor[210];

int main()
{
    int caseNum,N;
    int start,end;
    int max,temp;
    int sum[210];
    int i,j;
    
    cin>>caseNum;
    while(caseNum--)
    {
       cin>>N;
       for(i=0;i<N;i++)
       {
          cin>>start>>end;
          if(start>end)
          {
             temp=start;
             start=end;
             end=temp;
          }
          cooridor[i].from=(int)(start+1)/2;
          cooridor[i].to=(int)(end+1)/2;
       }
       
       memset(sum,0,sizeof(sum));
       max=0;
       
       for(i=0;i<N;i++)
       {
          for(j=cooridor[i].from;j<=cooridor[i].to;j++)
          {
             sum[j]++;
             if(sum[j]>max)
                max=sum[j];
          }
       }
       cout<<max*10<<endl;
    }
    return 0;
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HDU--1050:Moving Tables (贪心) 的相关文章

  • AcWing 907. 区间覆盖 贪心

    AcWing 907 区间覆盖 给定N个闭区间 ai bi 以及一个线段区间 s t 请你选择尽量少的区间 将指定线段区间完全覆盖 输出最少区间数 如果无法完全覆盖则输出 1 输入格式 第一行包含两个整数s和t 表示给定线段区间的两个端点
  • TOJ--1765:Longest Ordered Subsequence (DP求最长递增子序列)

    1 题目源地址 http acm tju edu cn toj showp1765 html 2 解题代码 TOJ 1765 Longest Ordered Subsequence DP求最长上升子序列 include
  • POJ--1328:Radar Installation (贪心)

    1 题目源地址 http poj org problem id 1328 2 解题思路 该题题意是为了求出能够覆盖所有岛屿的最小雷达数目 每个小岛对应x轴上的一个区间 在这个区间内的任何一个点放置雷达 则可以覆盖该小岛 区间范围的计算用 x
  • Codeforces Round 744 (Div. 3)

    A Casimir s String Solitaire 一个A需要一个B一个C需要一个B 所以只要A和C的个数之和等于B即可 AC代码 include
  • P1016 旅行家的预算【模拟+贪心】【详解】

    题目链接 思路 这道题是一道很明显的模拟题 但这道题也需要自己的理解 我自己写了些样例 然后找到了其中的模拟 我们假设从一个点出发 对于它的下一个点我们有很多选择 期间定义一个len用以记录满油 单次最远 到达距离 我们造访这条路上的所有点
  • Pie POJ - 3122【贪心、二分】

    该题连接 这是一道英文题 所以这里就不放原题了 我写一下它的题意 主人要开一个party 而主人有N个派 他要宴请F个人 也就是要有F 1个人要吃派 但这些人又很挑剔 他们每个人吃派只吃一种派 并且还不能容忍其他人吃的派比自己多 所以这就是
  • Array merging

    Array merging 题意 给出两个长度为n的数组a b 现在每次可以取出任意一个数组的第一个元素 放到c数组的后面 c数组一开始为空 求c数组连续相等的最长子串长度 思路 这里可以用两个map把a b数组每个元素对应的连续相等的最长
  • Polycarp and Div 3【Codeforces Round #496 (Div. 3)【D题】】【贪心】

    应该说是今天凌晨的吧 第一次打Code Forces 懵懵懂懂的 不过感觉还是良好 做了几道签到题 难题还是没有那个水准去做 Polycarp likes numbers that are divisible by 3 He has a h
  • 紫书《算法竞赛入门经典》

    紫书 算法竞赛入门经典 题目一览 第3章 数组和字符串 例题 UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 340 Master Mind Hints UVA 158
  • New Year and Social Network【Hello 2020 F】【拓扑+LCA+贪心】

    题目链接 看到比赛的时候zzq大聚聚用了LCT做的 在线 首先 我们可以发现 两棵大小相同 构造形状不同的树 一定是可以用另一棵树的边来维持这棵树上的每一个点的相互连通性的 我的做法 就是基于这样展开的 我们有T1 T2两棵树 现在我们要去
  • POJ--1458:Common Subsequence (DP求最长公共子序列)

    1 题目源地址 http poj org problem id 1458 2 基本题意 给出两个序列 求出最长子序列的长度并输出 经典的动态规划求解 求最长公共子序列的经典DP解法代价为O mn 其中m和n分别为两个字符串的长度 具体实现如
  • River Jumping【贪心+模拟】

    题目链接 我们可以贪心的从前往后 每次选最接近的且满足条件的这样的贪心 然后从后往前的时候 就是直接用倒着一个个判断是否合法即可 include
  • Acesrc and Hunting【模拟 贪心】

    HDU 6660 题目链接 这道题主要就是讲我们从任意点出发 每次走的都是没走过并且 曼哈顿距离大于1小于3的点 然后问能不能覆盖完整幅图 这里就想到一个很经典的问题 4399小游戏除草游戏 以前玩过的一个小游戏倒是让我对这道题的解法有了方
  • 璀璨光滑【牛客】【题意解析+BFS+贪心】

    题目链接 中文题意 表面平静 实则暗藏玄机 而打开本题的突破口 也确确实实就在于题目的描述 也就是说 这张图的边的数目是确定的 并且这是一张连通图 而且图上的个点每个点连接出去的边的数目都是条 因为每个数都刚好只与个数在二进制位上差1 那么
  • POJ--1159:Palindrome (DP求最长公共子序列)

    1 题目源地址 http poj org problem id 1159 2 题目大意 题目就是给你一个字符串 问你添加最少几个字符之后字符串变成回文字符串 求给出的字符串和逆序的字符串的最长公共子序列 用总长度减去这个最长公共子序列的长度
  • HDU--1233:还是畅通工程 (并查集 & 最小生成树Prim)

    1 题目源地址 http acm hdu edu cn showproblem php pid 1233 2 简单思路 先对村庄距离从小到大排序 然后使用并查集的查找 一边查找一边加上村庄之间的距离 从而得到可以走通所有村庄的最短距离 3
  • HDU--3783:ZOJ (水题)

    1 题目源地址 http acm hdu edu cn showproblem php pid 3783 2 源代码 include
  • LeetCode-1827. 最少操作使数组递增【贪心,数组】

    LeetCode 1827 最少操作使数组递增 贪心 数组 题目描述 解题思路一 简单暴力 解题思路二 优化1 ans是操作数 mx是当前最大元素 mx无论如何会依次递增 解题思路三 优化2 遇到小的数就pre 1 否则变为num 题目描述
  • AcWing 1247. 后缀表达式

    老师的讲课网址 https www acwing com video 736 第二个图就已经告诉我们只要有一个减号 我们就可以组成至少含一个减号的所有组合 比如说一个减号三个加号我们可以组合成 1 2 3 4 所以代码如下 include
  • 编程之美2015初赛第二场AB

    题目1 扑克牌 时间限制 2000ms 单点时限 1000ms 内存限制 256MB 描述 一副不含王的扑克牌由52张牌组成 由红桃 黑桃 梅花 方块4组牌组成 每组13张不同的面值 现在给定52张牌中的若干张 请计算将它们排成一列 相邻的

随机推荐

  • javascript中关键字in以及循环for...in的使用和注意事项

    写这篇文章 是因为在学习prototypejs库中方法Object extend 和Class create 看这篇指导 tutorial on classes and inheritance 的时候 对于什么能够继承 什么不能继承产生了一
  • 在ubuntu下搭建Qt Creator的arm交叉编译环境

    Qt Creator是跨平台的 Qt IDE Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级集成开发环境 IDE 此 IDE 能够跨平台运行 支持的系统包括 Linux 32 位及 64 位 Mac OS X 以
  • Python2.7 安装教程

    Python安装过程 1 下载安装程序 我们安装Python的一个重要目的是为了用IAR编译CC2640 OAD文件时执行合并文件的脚本 所以我们一起来看看Python2 7版本的安装方法 该版本安装程序的下载连接如下 https www
  • Conda/pip常用命令

    目录 1 管理与查看 1 1 查看conda版本 1 2 查看cuda driver的版本 2 虚拟环境 2 1 查看虚拟环境 2 2 创建虚拟环境 2 3 激活虚拟环境 2 4 删除虚拟环境 2 5 导出环境 导入环境 3 Package
  • docker上安装nacos

    文章目录 一 docker安装nacos简单版 1 拉取镜像 2 挂载目录 用于映射到容器 目录按自己的情况创建 3 mysql新建nacos config的数据库 并执行脚本 sql脚本地址如下 4 修改配置文件custom proper
  • 这5个很“哇塞”的不收费Python学习网站,说不定很适合现在的你

    作为一个现时代的程序员初学者 除了看书之外 互联网的学习手段也是断不能少的 给大家推荐几个比收费网站还要 香 的免费学习Python的网站 虽说不上全方位的满足你的需求 但是大部分也都能 1 菜鸟教程 http www runoob com
  • 怎么查看网页ajax发送的数据,如何查看我使用JQuery AJAX发送的SOAP请求数据

    userpass
  • C语言_输出字符串和获取字符串

    输出字符串和获取字符串 01 输出字符串 使用puts函数来输出字符串 使用printf函数来输出字符串 通过puts函数和printf函数都能够实现字符串输出 02 获取字符串 使用scanf函数来获取字符串 使用gets 函数来获取字符
  • Node.js Express框架

    node js express框架知识点详细解析 如下 express框架特性 可以设置中间件来响应 HTTP 请求 定义了路由表用于执行不同的 HTTP 请求动作 可以通过向模板传递参数来动态渲染 HTML 页面 安装 express 并
  • Data Matrix代码效率增强!条码组件TBarCode SDK最新版更新啦!

    TBarCode SDK一款多功能的条形码生成器和打印软件 适用于Microsoft Office用户和软件开发人员 您可以创建和打印所有用于工业和商业用途的条形码符号 使用TBarCode SDK 您可以使用条形码生成器软件 它已经在无数
  • 我是这样来做破解qq,做QQ外挂的 【-】

    file 2005beta2 IQQData IQQCore IDynamicData txt brief 2005beta2 IQQData IQQCore IDynamicData txt v1 0 2005 09 08 23 58 1
  • Diffusion Model原理详解及源码解析

    作者简介 秃头小苏 致力于用最通俗的语言描述问题 专栏推荐 深度学习网络原理与实战 近期目标 写好专栏的每一篇文章 支持小苏 点赞 收藏 留言 文章目录 Diffusion Model原理详解及源码解析 写在前面 Diffusion Mod
  • Spring Boot 实现多文件上传

    文件上传 Spring Boot代码 代码结构 Controller层 package com yqifei upload controller import io swagger annotations Api import org sp
  • php结合swoole 如何对接ChatGPT接口

    对接ChatGPT接口需要进行以下步骤 安装Swoole扩展和PHP cURL扩展 在项目中引入 composer require guzzlehttp guzzle 来安装 Guzzle HTTP客户端 编写HTTP请求代码调用ChatG
  • 面向对象的三大特性:继承、多态、封装--封装

    一 封装 1 广义的封装 实例化一个对象 给对象空间封装一些属性 class A def init self name selef name name 对象封装属性 2 狭义的封装 私有制 私有成员 私有静态字段 私有动态方法 私有对象 私
  • Basic Level 1078 字符串压缩与解压 (20分)

    题目 文本压缩有很多种方法 这里我们只考虑最简单的一种 把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示 例如 ccccc 就用 5c 来表示 如果字符没有重复 就原样输出 例如 aba 压缩后仍然是 aba 解压
  • GDB中应该知道的几个调试方法

    七 八年前写过一篇 用GDB调试程序 于是 从那以后 很多朋友在MSN上以及给我发邮件询问我关于GDB的问题 一直到今天 还有人在问GDB的相关问题 这么多年来 有一些问题是大家反复在问的 一方面 我觉得我以前的文章可能没有说清楚 另一方面
  • .bat 文件是什么?做什么用的?

    一 bat文件是dos下的批处理文件 批处理文件是无格式的文本文件 它包含一条或多条命令 它的文件扩展名为 bat 或 cmd 在命令提示下输入批处理文件的名称 或者双击该批处理文件 系统就会调用cmd exe按照该文件中各个命令出现的顺序
  • 近年来,学习图像去雾不得不看的论文和源代码

    S G Narasimhan and S K Nayar 多幅图像 同一场景不同时间 天气 去雾 主页 NASA Retinex理论增强 主页 Ana Bel n Petro总结了NASA的Retinex理论 源代码 不过不是matlab版
  • HDU--1050:Moving Tables (贪心)

    1 题目源地址 http acm hdu edu cn showproblem php pid 1050 2 解题思路 将每个输入的起始房间和结束房间转换为房间前面的区间 按区间起始位置从小到大排序 首先取第一个区间 后续如果有区间的起始位