zoukankan      html  css  js  c++  java
  • hdu 1050 Moving Tables

    题目

    这道题之前写过一次,结果再做又忘了,再做又忘了。所以还是写个博客记录一下。

    相对门的两个房间占用同一处走廊,所以例如有1——>3和4——>6移动方式时,它们是共享了同一段走廊的,即3号房间门前的走廊。

    处于相对门的两个房间和处于一排的这样子的房间他们都有一个相同点:奇数房间到偶数房间占用的房间数相同。而有个不同点是:相对门奇数到奇数门所占用的房间,其实还要包括她对门的偶数房间。这就是我们下面要处理 的情况

    尽管他是相对的房间,但是我们在处理的时候还是把他们当作一排来,所以就要处理1——>3,4——>5的这种情况。

    我们把所有是奇数的门都+1变成是他的对门

                if(Point[i].x%2==1)
                    Point[i].x ++;
                if(Point[i].y%2==1)
                    Point[i].y++;

    具体代码如下:

    #include<stdio.h>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    struct point
    {
        int x;
        int y;
        int flag ;
    };
    point Point[210];
    int cmp(point &a,point &b)
    {
        return a.x < b.x;
    }
    int main()
    {
        int T,n;
        scanf("%d",&T);
        while(T--)
        {
            int x,y,cnt=0;
            scanf("%d",&n);
            for(int i=0; i<n; i++)
            {
                scanf("%d%d",&Point[i].x,&Point[i].y);
    
                if(Point[i].x%2==1)
                    Point[i].x ++;
                if(Point[i].y%2==1)
                    Point[i].y++;
    
                    if(Point[i].x>Point[i].y)
                    {
                        int t= Point[i].x;
                        Point[i].x = Point[i].y;
                        Point[i].y = t;
                    }
                    Point[i].flag = 1;
            }
            sort(Point,Point+n,cmp);
    
            for(int i=0;i<n;i++)
            {
                if(Point[i].flag == 0) continue;//判断过的就不用再算了
                int t = Point[i].y;
                for(int j=i+1;j<n;j++)
                {
                    if(Point[j].flag == 0)//判断过的就不用再算了
                        continue;
                    if(Point[j].x > t)
                    {
                        Point[j].flag = 0;
                        t = Point[j].y;
                    }
                }
                cnt++;
            }
            printf("%d
    ",cnt*10);
        }
        return 0;
    }
    
  • 相关阅读:
    CentOS5.6下SVN的安装
    在servlet中的init方法中使用getInitParameter方法空指针错误
    Linux iostat监测IO状态【转】
    自己实现一个list比较器 实现Comparator()接口
    一些常用的随机实现
    java里null强转为某个类会报错吗?
    java游戏服务器简单工厂模式
    起个头!准备写一个 设计模式系列
    HashMap根据value值排序
    java游戏服务器 策略+简单工厂
  • 原文地址:https://www.cnblogs.com/qie-wei/p/10160192.html
Copyright © 2011-2022 走看看