社区讨论
O(n^2)也过了?
P1020[NOIP 1999 提高组] 导弹拦截参与者 4已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mlopdddt
- 此快照首次捕获于
- 2026/02/16 12:57 3 天前
- 此快照最后确认于
- 2026/02/16 23:56 3 天前
代码(根据题解思路写的):
CPP#include<bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n=0,ans=0;
int arr[100005],sys[100005];
{
int k;
while(cin>>k) arr[n++]=k;
}
for(int i=0;i<n;i++)
{
if(ans==0||sys[ans-1]>=arr[i])
sys[ans++]=arr[i];
else
{
int L=0,R=ans-1,mid,find=-1;
while(L<=R)
{
mid=L+((R-L)>>1);
if(sys[mid]<arr[i])
{
find=mid;
R=mid-1;
}
else
L=mid+1;
}
sys[find]=arr[i];
}
}
cout<<ans<<'\n';
ans=0;
for(int i=0;i<n;i++)
{
int x=0x3f3f3f3f,j_=-1;
for(int j=0;j<ans;j++)
{
if(sys[j]>=arr[i])
{
if(x>sys[j])
{
x=sys[j];
j_=j;
}
}
}
if(j_==-1)
sys[ans++]=arr[i];
else
sys[j_]=arr[i];
}
cout<<ans<<'\n';
ans=0;
return 0;
}
提交记录。
两个问我只用二分优化第一个问Hack数据都过了,是数据太水还是因为别的原因?
两个问我只用二分优化第一个问Hack数据都过了,是数据太水还是因为别的原因?
回复
共 5 条回复,欢迎继续交流。
正在加载回复...