社区讨论
为什么这个快排过不了,一定要用sort才能过吗?
P1803凌乱的yyy / 线段覆盖参与者 4已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mi6to9wn
- 此快照首次捕获于
- 2025/11/20 10:38 4 个月前
- 此快照最后确认于
- 2025/11/20 10:38 4 个月前
#include<stdio.h>
int n;
struct t
{
int a;
int b;
}s[1000005];
f(int l,int r)
{
int i,j,t,x,y,temp;
if(l>r)
return;
temp=s[l].b;
y=s[l].a;
i=l;
j=r;
while(i!=j)
{
while(s[j].b>=temp&&i<j)
j--;
while(s[i].b<=temp&&i<j)
i++;
if(i<j)
{
t=s[i].b;
x=s[i].a;
s[i].b=s[j].b;
s[i].a=s[j].a;
s[j].b=t;
s[j].a=x;
}
s[l].b=s[i].b;
s[i].b=temp;
s[l].a=s[i].a;
s[i].a=y;
f(l,i-1);
f(i+1,r);
return;
}
}
int main()
{
int i,k=0,x=-1,y;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d %d",&s[i].a,&s[i].b);
f(1,n);
for(i=1;i<=n;i++)
if(s[i].a>=x){x=s[i].b;k++;}
printf("%d\n",k);
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...