• 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;
    }
    
  • 相关阅读:
    代码坏味道
    外包对程序员发展有什么弊端?
    前端接口神器
    使用Autofac
    在 WASI 上运行 .NET 7 应用程序
    在非k8s 环境下 的应用 使用 Dapr Sidekick for .NET
    一个简单的模拟实例说明Task及其调度问题
    xxljob 小结
    [LeetCode] 1291. Sequential Digits 顺次数
    [LeetCode] 1289. Minimum Falling Path Sum II 下降路径最小和之二
  • 原文地址:https://www.cnblogs.com/qie-wei/p/10160192.html
Copyright © 2020-2023  润新知