HDU-1050
来源:互联网 发布:网络摄像机改ip软件 编辑:程序博客网 时间:2024/06/05 07:29
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
#define Maxn 500
#define swap(s,t) (s)^=(t)^=(s)^=(t);
#define INF 1<<30
int array[Maxn];
struct node
{
int left,right;
}Node[3*Maxn];
bool cmp(node &a,node &b)
{
return a.left<b.left;
if(a.left<b.left) {return 1;}
return a.right<b.right;
}
void Bin(node _Node[] ,int left,int right)
{
int i;
if((right-left)==1)
{
if(_Node[left].right>=_Node[right].left){
for( i=_Node[right].left;i<=_Node[left].right;i++){array[i]++; }
}
return;
}
if(right==left){return;}
int mid=(left+right)>>1;
Bin(_Node,left,mid);
Bin(_Node,mid+1,right);
if(_Node[mid].right>=_Node[mid+1].left)
{
//printf("%d %d\n",_Node[mid].right,_Node[mid+1].left);
for(i=_Node[mid+1].left;i<=_Node[mid].right;i++)
{
array[i]++;
}
}
}
int main()
{
int n,m;
int s,t;
int i;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
memset(array,0,sizeof(array));
for( i=0;i<m;i++)
{
scanf("%d%d",&s,&t);
if(s>t){swap(s,t);}
if(s%2==0){s=s>>1;}else s=(s+1)>>1;
if(t%2==0){t=t>>1;}else t=(t+1)>>1;
Node[i].left=s;
Node[i].right=t;
}
sort(Node,Node+m,cmp);
Bin(Node,0,m-1);
int maxnum=-1;
for(i=0;i<200;i++)
{
if(array[i]>maxnum){maxnum=array[i];}
}
printf("%d\n",(maxnum+1)*10);
}
}
/*
#include<iostream>
using namespace std;
int main()
{
int M;
cin>>M;
while(M--)
{
int i,n,k,l; //l个需要搬动的桌子,起始n,中止k
cin>>l;
int id[201]={0};
while(l--)
{
cin>>n>>k;
if(n>k)
{i=n;n=k;k=i;} //交换小值n在前
for(i=(n+1)/2;i<=(k+1)/2;i++) //奇数偶数全加一然后除以2就是走廊号。
id[i]++;
}
int max=0;
for(i=0;i<201;i++)
if(max<id[i])
max=id[i]; //找最大值
cout<<max*10<<endl;
}
return 0;
}*/
#include<string.h>
#include<algorithm>
using namespace std;
#define Maxn 500
#define swap(s,t) (s)^=(t)^=(s)^=(t);
#define INF 1<<30
int array[Maxn];
struct node
{
int left,right;
}Node[3*Maxn];
bool cmp(node &a,node &b)
{
return a.left<b.left;
if(a.left<b.left) {return 1;}
return a.right<b.right;
}
void Bin(node _Node[] ,int left,int right)
{
int i;
if((right-left)==1)
{
if(_Node[left].right>=_Node[right].left){
for( i=_Node[right].left;i<=_Node[left].right;i++){array[i]++; }
}
return;
}
if(right==left){return;}
int mid=(left+right)>>1;
Bin(_Node,left,mid);
Bin(_Node,mid+1,right);
if(_Node[mid].right>=_Node[mid+1].left)
{
//printf("%d %d\n",_Node[mid].right,_Node[mid+1].left);
for(i=_Node[mid+1].left;i<=_Node[mid].right;i++)
{
array[i]++;
}
}
}
int main()
{
int n,m;
int s,t;
int i;
scanf("%d",&n);
while(n--)
{
scanf("%d",&m);
memset(array,0,sizeof(array));
for( i=0;i<m;i++)
{
scanf("%d%d",&s,&t);
if(s>t){swap(s,t);}
if(s%2==0){s=s>>1;}else s=(s+1)>>1;
if(t%2==0){t=t>>1;}else t=(t+1)>>1;
Node[i].left=s;
Node[i].right=t;
}
sort(Node,Node+m,cmp);
Bin(Node,0,m-1);
int maxnum=-1;
for(i=0;i<200;i++)
{
if(array[i]>maxnum){maxnum=array[i];}
}
printf("%d\n",(maxnum+1)*10);
}
}
/*
#include<iostream>
using namespace std;
int main()
{
int M;
cin>>M;
while(M--)
{
int i,n,k,l; //l个需要搬动的桌子,起始n,中止k
cin>>l;
int id[201]={0};
while(l--)
{
cin>>n>>k;
if(n>k)
{i=n;n=k;k=i;} //交换小值n在前
for(i=(n+1)/2;i<=(k+1)/2;i++) //奇数偶数全加一然后除以2就是走廊号。
id[i]++;
}
int max=0;
for(i=0;i<201;i++)
if(max<id[i])
max=id[i]; //找最大值
cout<<max*10<<endl;
}
return 0;
}*/
0 0
- hdu 1050
- hdu 1050
- HDU 1050
- hdu 1050
- hdu 1050
- Hdu 1050
- hdu 1050
- HDU-1050
- hdu 1050
- hdu 1050
- hdu 1050
- hdu 1050+hdu 1789+hdu 3177(贪心)
- HDU 1050 Moving Tables
- hdu 1050 moving tables
- hdu 1050 Moving Table
- HDU-1050 Moving Tables
- hdu 1050 重叠 rom
- HDU-1050 数学题
- Java设计模式--状态模式
- CentOS7 增加tomcat 启动,停止,使用systemctl进行配置
- Ubuntu下安装mysql配置检测
- AdaBoost 人脸检测介绍(1) : AdaBoost身世之谜
- Java设计模式--享元模式
- HDU-1050
- Two Smallest Difference of Ad
- HDU 5896 (CDQ分治 NTT)
- Java设计模式--备忘录模式
- 链表中的带环相交问题
- 我想拥有毅力
- HDU 5638 Toposort(贪心+优先队列+拓扑排序)
- Unix网络编程 函数运用
- java 国际化统一处理的工具类