洛谷P1410 子串行

2022-05-13 17:03:16 字數 1073 閱讀 2507

給定乙個長度為n(n為偶數)的序列,問能否將其劃分為兩個長度為n/2的嚴格遞增子串行,

輸入格式:

若干行,每行表示一組資料。對於每組資料,首先輸入乙個整數n,表示序列的長度。之後n個整數表示這個序列。

輸出格式:

同輸入行數。對於每組資料,如果存在一種劃分,則輸出「yes!」,否則輸出「no!「。

輸入樣例#1:

6 3 1 4 5 8 7

6 3 2 1 6 5 4

輸出樣例#1:

yes!

no!

【資料範圍】

共三組資料,每組資料行數<=50,0 <= 輸入的所有數 <= 10^9

第一組(30%):n <= 20

第二組(30%):n <= 100

第三組(40%):n <= 2000

如果有兩個數構成單調不公升序列,那麼這兩個數必須被分在兩個不同的嚴格上公升序列裡。如果有長度大於2的單調不公升序列,兩個嚴格上公升序列放不下,那麼就不可行。

1

/*by silvern

*/2 #include3 #include4 #include5 #include6 #include7 #include8

using

namespace

std;

9const

int mxn=2010;10

intread()

13while(ch>='

0' && ch<='9')

14return x*f;15}

16int

f[mxn];

17int

a[mxn];

18int

n;19

intmain()

28bool flag=1;29

for(i=1;i<=n;i++)

30if(f[i]>2)

31if(!flag)continue

;32 printf("

yes!\n");

33}3435

return0;

36 }

洛谷 P1410 子串行

這題乍一看毫無思路。顯然不可能窮舉長度為n 2的嚴格遞增子串行。不過聯想到noip1999 普及組 的飛彈攔截的第二問,就有思路了。這題其實與它的第二問差不多,只要算出該序列的最大非公升子串行長度l,判斷一下是否大於2即可。1.假如l 2,顯然乙個嚴格遞增子串行至多包含非公升子串行的乙個元素,2個子...

洛谷 P1410 子串行

給定乙個長度為n n為偶數 的序列,問能否將其劃分為兩個長度為n 2的嚴格遞增子串行,輸入格式 若干行,每行表示一組資料。對於每組資料,首先輸入乙個整數n,表示序列的長度。之後n個整數表示這個序列。輸出格式 同輸入行數。對於每組資料,如果存在一種劃分,則輸出 yes 否則輸出 no 輸入樣例 1 6...

P1410 子串行 動態規劃

給定乙個長度為n n為偶數 的序列,問能否將其劃分為兩個長度為n 2的嚴格遞增子串行 一般青年dp方案 f i j k l 表示前i j位分為乙個長度為i以j結尾,乙個長度為k以l結尾的序列 是否可行 0,1 省略已知值 觀察發現j和l中至少有乙個為a i j 故可省略其中一位 n 2000必跪 文...