文章

2

粉丝

89

获赞

1

访问

1.6k

头像
合唱队形 哪位大佬看看为什么只有50%:
P1253 北京大学机试题
发布于2024年3月31日 20:40
阅读数 507

/*找最高的同学为Ti,此时的值一定大于找其他同学的
然后去掉中间的同学从两边开始找,
最后结果是总人数-(两边加起来再加1)*/
 
#include<iostream>
#include<algorithm>
#include<string.h>
#include<vector> 
using namespace std;
const int maxn=1100;
int dp[maxn];
int a[maxn];
int t[maxn];
int pos1;
vector<int> v;

int LIS(int n){
    int len=1;
    dp[len]=a[1];
    for(int i=2;i<=n;i++){
        if(a[i]>dp[len]){
            dp[++len]=a[i];
        }else{
            int pos=lower_bound(dp+1,dp+len,a[i])-dp;
            dp[pos]=a[i];
        }
    }
    return len;
}

int main(){
    int N;
    while(scanf("%d",&N)!=EOF){
 &...

登录查看完整内容


登录后发布评论

3 条评论
Happy0111
2024年4月1日 13:04

找最高点不一定就是最优解,反例:130 220 135 140 180 140

赞(0)
snake VIP
2024年3月31日 23:19

这个思路有问题,不一定最高点是转折点,有可能不包含最高点反而序列最长

赞(0)

Happy0111 : 回复 snake: 好的,谢谢,已经找到反例了

2024年4月1日 13:02