您的位置:首页 > 其它

hdu 1050 Moving Tables (贪心)

2012-04-15 20:07 423 查看
注意

1 房间是两排,

房间号:1 3 5 7 9 11 13 15 17 19 21

房间号:2 4 6 8 10 12 14 16 18 20 22

走廊号:1 2 3 4 5 6 7 8 9 10 11

题目中描述的是房间号,要把它变成走廊号

例如从(9 10)所对应的i 和 j 均是5

2 走廊i 到 j j是结尾

3 输入的数据不一定都是第一个小于第二个有可能是i>j

代码:

#include <iostream>

#include <cstdio>

#include <cstring>

#include <algorithm>

using namespace std;

#define maxnum 300

struct thenode

{

int s;

int e;

};

thenode node[maxnum];

int sign[maxnum];

int main()

{

int i,j;

int f,en;

int sum;

int n;

int t;

scanf("%d",&t);

while(t--)

{

scanf("%d",&n);

for(i=1;i<=n;i++)

{

scanf("%d%d",&f,&en);

if(f%2==0)

f/=2;

else f=(f+1)/2;

if(en%2==0)

en/=2;

else en=(en+1)/2;

if(f>en)

{

int t=f;

f=en;

en=t;

}

node[i].s=f;

node[i].e=en;

}

memset(sign,0,sizeof(sign));

int max=0;

for(i=1;i<=n;i++)

{

for(j=node[i].s;j<=node[i].e;j++)

{

sign[j]++;

if(max<sign[j])

max=sign[j];

}

}

sum=max*10;

printf("%d\n",sum);

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: