zoukankan      html  css  js  c++  java
  • Moving Tables POJ

    题目大意

    在一层楼上推桌子,每个空间一次只能推1种桌子,且消耗十分钟。可以同时推多个桌子,但是他们所占的空间不能是相交的如图

    解法

    真的很考验思维能力,首先考虑到这个走廊是有两排的,我瞬间想到了宿舍楼。。。

    发现1 2是对着的3 4是对着的一个空间而2 3是两个空间这该怎么办好呢?

    我们可以把他们化成1 2这种格式,即奇数左边界偶数右边界,即小的如果是偶数那么-1大的边界如果是奇数那么加一2 3可以化解成1 4是两个空间了,然后计算最大重复空间即可了

    代码

    #include <iostream>
    #include <algorithm>
    #include <cstring>
    using namespace std;
    int bk[1000];
    int main()
    {
      ios::sync_with_stdio(0);
      cin.tie(0);
      cout.tie(0);
      int t;
      cin>>t;
      while(t--)
      {
        memset(bk,0,sizeof(bk));
        int n;
        cin>>n;
        for(int i=0;i<n;i++)
        {
          int t1,t2;
          cin>>t1>>t2;
          if(t1>t2)
          swap(t1,t2);
          if(t1%2==0)
          t1--;
          if(t2%2==1)
          t2++;
          for(int i=t1;i<=t2;i++)
          bk[i]++;
        }
        int maxn=-1;
        for(int i=1;i<=400;i++)
        maxn=max(maxn,bk[i]);
        cout<<maxn*10<<"
    ";
      }
    }
    
  • 相关阅读:
    js实现方块弹珠游戏
    学习servlet时出现的一些问题
    简述JAVA类的生命周期
    JAVA高级之路----JAVA多线程
    小计Tomcat的调优思路
    java生成pdf
    git分支在团队中的使用
    程序员修炼内功心法
    学会学习
    如何快速阅读
  • 原文地址:https://www.cnblogs.com/baccano-acmer/p/10109081.html
Copyright © 2011-2022 走看看