• [洛谷] P1091 合唱队形


    思路很好想 从前从后两遍最长上升子序列 

    而且要用n方的算法 nlogn不易记录当前位值

    数据不严谨 题目要求是先递增后递减序列

    结果数据给了全递增数列 也算合法 真的是醉醉的

    //#pragma GCC optimize(2)
    #include <cstdio>
    #include <iostream>
    #include <cstdlib>
    #include <cmath>
    #include <cctype>
    #include <string>
    #include <cstring>
    #include <algorithm>
    #include <stack>
    #include <queue>
    #include <set>
    #include <map>
    #include <ctime>
    #include <vector>
    #include <fstream>
    #include <list>
    #include <iomanip>
    #include <numeric>
    using namespace std;
    typedef long long ll;
     
    const int MAXN = 1e6 + 10;
    
    int arr[MAXN] = {0}, n, ans = 1;
    
    int head[MAXN], tail[MAXN];
    
    void Lis()
    {
        for(int i = 0; i < n; i++)
            for(int j = 0; j < i; j++)
                if(arr[j] < arr[i]) 
                    head[i] = max(head[i], head[j] + 1);
    }
    
    void Lisi()
    {
        for(int i = n - 1; i >= 0; i--)
            for(int j = n - 1; j > i; j--)
                if(arr[j] < arr[i]) 
                    tail[i] = max(tail[i], tail[j] + 1);
    }
    
    int main()
    {
        ios::sync_with_stdio(false);
     
        cin.tie(0);     cout.tie(0);
     
        cin>>n;
    
        for(int i = 0; i < n; i++)
            cin>>arr[i], head[i] = 1, tail[i] = 1;
    
        Lis();
    
        Lisi();
    
    //    for(int i = 0; i < n; i++)
    //    {
    //        cout<<head[i]<<' ';
    //    }
    //
    //    cout<<endl;
    //
    //    for(int i = 0; i < n; i++)
    //    {
    //        cout<<tail[i]<<' ';
    //    }
    
    	
    	
    	for(int i = 0; i < n; i++)
        {
            ans = max(ans, (head[i] + tail[i]) - 1);
        }
    
        cout<<n - ans<<endl;
        
        return 0;
    }
  • 相关阅读:
    分形与数据结构第一篇(神奇的色子)
    画图小工具第二篇
    画图小工具第一篇
    图形界面第一篇
    回合制对战游戏第二篇
    回合对战制游戏第一篇(初识java)
    技术+态度+人品
    排序的一些方法(稳定性,内外排序,时间空间复杂度)
    暂时性死区
    vue传值(父子传值,非父子传值)
  • 原文地址:https://www.cnblogs.com/zeolim/p/12270444.html
Copyright © 2020-2023  润新知