hdu 1050 Moving Tables

一开始算法想的有点问题。

坑点在于走廊两侧都有房间

也就是说room1和room2对应的位置是一样的

1 to 3 4to6 是没法同时完成的。

做法就是整个扫一遍,看哪个位置的重复次数最大,*10就是答案。

 1    
 2    #include <iostream>
 3    #include <algorithm>
 4    #include <cmath>
 5    #include<cstdio>
 6    #include <cstring>
 7    
 8    using namespace std;
 9    
10    int main()
11    {
12        int t,n,a[300],b[300];
13        int p[300];
14        int ans;
15        scanf("%d",&t);
16        while (t--)
17        {
18    
19            scanf("%d",&n);
20            memset(p,0,sizeof(p));
21            memset(a,0,sizeof(a));
22            memset(b,0,sizeof(b));
23            for (int i=1;i<=n;i++)
24            {
25                scanf("%d %d",&a[i],&b[i]);
26                if (a[i]>b[i])
27                    swap(a[i],b[i]);
28                for (int j=(a[i]+1)/2;j<=(b[i]+1)/2;j++)
29                    p[j]++;
30            }
31            ans=0;
32            for (int i=1;i<=200;i++)
33                if (p[i]>ans)
34                ans=p[i];
35            printf("%d\n",ans*10);
36        }
37        return 0;
38    }
39