No.2697 Range LIS Query
レベル : / 実行時間制限 : 1ケース 10.000秒 / メモリ制限
: 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 66
作問者 :
nouka28
/ テスター :
KowerKoint2010
hibit_at
👑
seekworser
isee
タグ : / 解いたユーザー数 66
作問者 :


問題文最終更新日: 2024-03-21 21:50:55
ストーリー
悪の医者である hibit 君は、彼の野望のために最長増加部分列について勉強しています。
しばらくして hibit 君は以下の問題に出会いましたが、もう夜遅かったので明日のバーチャルコンテスト「あさかつ」に備えて寝ることにしました。
hibit 君のライバルであるあなたはその問題を hibit 君が起きる前に解こうと思いました。
問題文
以上 以下の整数からなる長さ の数列 が与えられます。
個のクエリが与えられるので、順番に処理してください。クエリは次の 種類です。
1 l r
: の連続部分列 について の最長広義単調増加部分列の長さを出力する。2 l r x
: を満たす整数 について を に更新する。
注釈
- 列 の部分列 : の要素をいくつか抜き出して元の順序に並べてできる列
- 列 の連続部分列 : のある連続する区間のみを取り出し順番を保ったもの
- 列 の最長広義単調増加部分列 : の広義単調増加な部分列の中で列の長さが最大であるもの
制約
- 入力はすべて整数
- , 種類目のクエリについて
- 種類目のクエリについて
入力
入力は以下の形式で標準入力から与えられる。各クエリ は
または、
の形で与えられる。
出力
種類目のクエリの数を として 行出力してください。 行目には 個目の 種類目のクエリに対する出力を出力してください。
サンプル
サンプル1
入力
7 1 2 4 3 2 1 3 3 1 1 7 2 2 4 1 1 3 6
出力
4 3
最初 です。クエリを順に処理すると次のようになります。
- です。 の最長広義単調増加部分列の つとして があり、この長さは なので、 を出力します。
- をすべて に更新します。よって となります。
- です。 の最長広義単調増加部分列の つとして があり、この長さは なので、 を出力します。
サンプル2
入力
4 4 3 2 1 1 1 1 4
出力
1
サンプル3
入力
17 2 1 3 3 2 3 3 3 4 2 3 2 2 2 1 4 1 15 2 5 17 1 1 8 10 1 11 13 2 2 8 2 2 6 17 2 1 11 17 2 13 17 4 1 9 13 2 6 6 4 2 1 16 4 1 2 5 2 16 16 1 2 3 6 2 1 3 6 1 2 2
出力
3 3 7 5 4 4 1
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。