社区讨论
陈年老题始终不A求调
P1020[NOIP 1999 提高组] 导弹拦截参与者 4已保存回复 18
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 18 条
- 当前快照
- 1 份
- 快照标识符
- @mhj0li1s
- 此快照首次捕获于
- 2025/11/03 18:46 4 个月前
- 此快照最后确认于
- 2025/11/03 20:30 4 个月前
最近又写了一遍。然而log的LIS太奇葩了,于是我又又又又栽了。
CPP#include <bits/stdc++.h>
using namespace std;
int n;
int a[100005];
int d[100005];
int main()
{
while(cin >> a[++n]);
n--;
int len = 0;
for(int i = 1;i <= n;i++)
{
if(a[i] <= d[len])
{
d[++len] = a[i];
}
else
{
int lt = 1,rt = len;
while(lt < rt)
{
int mid = (lt+rt)/2;
if(a[i] > d[mid])
{
rt = mid;
}
else
{
lt = mid+1;
}
}
d[rt] = a[i];
}
}
cout << len << "\n";
len = 0;
for(int i = 0;i <= n;i++)
{
d[i] = 0;
}
for(int i = 1;i <= n;i++)
{
if(a[i] > d[len])
{
d[++len] = a[i];
}
else
{
int lt = 1,rt = len;
while(lt < rt)
{
int mid = (lt+rt)/2;
if(a[i] <= d[mid])
{
rt = mid;
}
else
{
lt = mid+1;
}
}
d[rt] = a[i];
}
}
cout << len << "\n";
return 0;
}
回复
共 18 条回复,欢迎继续交流。
正在加载回复...