1. 程式人生 > >新疆大學ACM-ICPC程式設計競賽五月月賽(同步賽)C-勤奮的楊老師

新疆大學ACM-ICPC程式設計競賽五月月賽(同步賽)C-勤奮的楊老師

    正向求最長上升子序列並且將記錄,反向求最長上升子序列並且維護答案。

#include<bits/stdc++.h>
using namespace std;
#define rep(i,j,k) for(int i=j;i<=k;i++)
typedef long long ll;

int dp1[500005];
int dp2[500005];
int a[500005];
int tmp[500005];
int n ;

const int INF =1e9;

int ans;

void solve(){
    fill(dp1,dp1+n,INF);
    rep(i,0,n-1) {
        *upper_bound(dp1,dp1+n,a[i])=a[i];
        tmp[i]=lower_bound(dp1,dp1+n,INF)-dp1;
    }
    fill(dp2,dp2+n,INF);
    for(int i=n-1;i>=0;i--){
        *upper_bound(dp2,dp2+n,a[i])=a[i];
        int k=lower_bound(dp2,dp2+n,INF)-dp2;
        ans=max(ans,tmp[i]+k-1);
    }
}

int main(){

    cin>>n;
    rep(i,0,n-1) scanf("%d",&a[i]);
    solve();
    cout<<ans<<endl;
    return 0;
}

相關推薦

新疆大學ACM-ICPC程式設計競賽月月 F

題目描述 我們知道有一種神奇的排序方法叫做猴子排序,就是把待排序的數字寫在卡片上,然後讓猴子把卡片扔在空中,等落下的時候觀察這些卡片是否從左到右已經排序完成(我們認為不會發生卡片落地後疊在一起的情況)如果有序則排序完成,否則讓猴子再扔一遍,直到卡片有序,那麼問題來了,給你N個卡片

新疆大學ACM-ICPC程式設計競賽月月同步C-勤奮老師

    正向求最長上升子序列並且將記錄,反向求最長上升子序列並且維護答案。#include<bits/stdc++.h> using namespace std; #define rep(i

第八屆ACM趣味程式設計競賽第四場正式A B C

Yitong_Qin and Xiaoyu_Chen are playing a game.There are $N$ stones placed on the ground,forming a sequence. Thr stones are labeled from 1 to N. Yitong_Qin

第八屆ACM趣味程式設計競賽第三場正式官方題解

Source:LinPC 題解:首先預處理統計a-z字元的數量,根據漸變字串的定義,由於總字元數較小,所以可以列舉漸變字串的起點,然後找到由該起點起始的最大漸變字串,然後從統計的字元中刪除所用字元,如此迴圈操作至剩餘字元數為0即可 題解: 易得,只要最長的那條

山東省第三屆ACM大學生程式設計競賽 Fruit Ninja I01揹包

01揹包 加上vector的運用,貪心sort排序 #include <stdio.h> #include <vector> #include <string.h>

電子科技第十屆ACM趣味程式設計競賽第三場正式官方題解

A 秦皇炒飯 source: Pxt 偶數不滿足兩兩互質,因此最少要分n/2組。相鄰的兩個數2k與2k+1一定互質可以分為1組,編號為1的可以加入任意組。 因此,. #include<cstdio> using namespace std; int i

新疆大學ACM-ICPC程序設計競賽月月同步- 猴子排序的期望

lan ext desc ring 輸出 next divide one char 鏈接:https://www.nowcoder.com/acm/contest/116/F來源:牛客網 題目描述 我們知道有一種神奇的排序方法叫做猴子排序,就是把待排序的

新疆大學ACM-ICPC程序設計競賽月月同步F 猴子排序的期望【Java/高精度/組合數學+概率論】

keyset 競賽 turn ext ID return 組合數學 AS vid 鏈接:https://www.nowcoder.com/acm/contest/116/F 來源:牛客網 題目描述 我們知道有一種神奇的排序方法叫做猴子排序,就是把待排序的數字寫在卡片上,

福建工程學院第七屆ACM程式設計新生 同步

A.關電腦 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long LL; 4 int T,h1,m1,s1,h2,m2,s2,t1,t2,ans; 5 int main()

ACM-ICPC 2018 徐州賽區網路預賽I + H水模擬 + 線段樹

I 題意 給定一個字串ss和一個字元LL,將所有的 |(int)(L−s[i])||(int)(L−s[i])| 轉化為一個兩位數後,按順序拼接在一起,問,這個拼接而成的新序列,去掉前導0後的長度是

約會 福建工程學院第七屆ACM程式設計新生 同步

連結:https://ac.nowcoder.com/acm/contest/289/H 來源:牛客網   題解:看程式碼註釋 程式碼 #include <iostream> #include <cmath> using namespace std;

內心裡的一把火 福建工程學院第七屆ACM程式設計新生 同步

連結:https://ac.nowcoder.com/acm/contest/289/D 來源:牛客網   題解:簡單來看 可以用三個小三角形的面積之和與大三角形的面積作比較。 問題的關鍵式怎麼求三角形的面積,知道向量的叉乘求面積好處理一些,簡單來說 結論是這樣的: 已知三

2017第八屆藍橋杯大賽個人賽省軟體類 C/C++ 大學A組 題解題和第六題

前言今天是情人節呢❤ 正好現在睡不著,先解決簡單的題吧。程式碼填空題區程式碼填空題:要求選手在弄清給定程式碼工作原理的基礎上填寫缺失的部分,使得程式邏輯正確、完整。把程式碼填空的答案(僅填空處的答案,不包括題面已存在的程式碼或符號)直接通過網頁提交即可,不要書寫多餘的內容。使

西南民族大學第十屆校同步

可AK場,題目非常基礎,可惜比賽時太困,沒來得及AK...由於一開始選了C++14,導致寫B題時用gets函式一直編譯報錯,用getline就一直T到飛...賽後改C++11就過了,最終沒來得及看非常easy的J題QAQ~ A.dreamstart的催促:籤道題。 1 #inclu

西南民族大學第十屆校同步(H題——Ricky’s RealDan’s Ricky)

題目描述 The 2019 is coming!Ricky 和 RealDan為了慶祝2018一年的成果,準備去大吃一頓,然而 Ricky 想吃火鍋, RealDan 想吃海鮮。為了解決吃什麼的難題, 他們向聰明的神祕人(出題人)尋求幫助,神祕人則給他們出了這樣一個問題: 現在有

西南民族大學第十屆校同步(G題——不想再WA了)

題目描述 歡迎參加西南民族大學 2018 年校賽。 對於你來說,做題 WA 了 是一件很痛苦的事,所以你從現在開始不想再看到有題 WA 了。 那麼現在給你 A,C,W 三種字元,問組成一個長度為 n(不含 WA,即 W 後一個字元不能為 A ) 的字串,總共有多少種方案?( T

西南民族大學第十屆校同步(F題——集訓隊脫單大法:這是一道只能由學姐我自己出資料的水題)

題目描述 總所不周知!ZZZZone有了女朋友卻誰也不知道。但是ZZZZone在集訓隊總是和陳大佬走的很近,每天摟摟抱抱十分不成體統!於是就被ZZZZone的女朋友給知道了,但是呢,ZZZZone的女朋友是一個熱愛畫畫的溫柔又可愛的女子,於是她決定把ZZZZone大卸兩塊,沒錯是

西南民族大學第十屆校同步(K題——正方體)

題目描述 已知一個正方體,每個面上都有任意一個數(假設每一面的面積足夠大來裝下當前面上的數字),現被展開成了如下形式: 輸入中保證第一行有一個面,第二行有四個面,第三行有一個面。請用程式碼檢查這個正方體對立面上的數是否相同。 輸入描述: 輸入包含多個測試樣例。

西南民族大學第十屆校同步(L題——簡單的分數)

題目描述 John最近對分數很感興趣,在研究分數的加減運算。現在要求計算兩個分數的運算。 輸入描述: 輸入一個正整數T,表示有T組資料 每組資料包括5個整數op,a,b,c,d op為1表示a/b + c/d;op為0表示為a/b – c/d 其中1 <=

新年第一篇!西南民族大學第十屆校同步

https://ac.nowcoder.com/acm/contest/322#question   A.dreamstart的催促 程式碼: #include <cstdio> #include <cstring> #include <i