p2501 HAOI2006 數字序列

2022-04-30 07:18:13 字數 947 閱讀 6665

傳送門

分析

對於第二問的感性理解就是有上下兩條線,一些點在上面的線的上面或者下面的線的下面,然後看它們變成哪個線的位置更優

**

#include#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define int long long

const

int inf = 1e9+7

;int a[100100],d[100100],dp[100100],ddp[100100],sum1[100100],sum2[100100

];vector

v[100100

];signed main()

v[0].push_back(0

);

for(i=1;i<=n;i++)v[dp[i]].push_back(i);

printf(

"%lld\n

",n-ans);

ddp[

0]=0

;

for(i=1;i<=n;i++)ddp[i]=inf;

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

for(j=0;j1].size();j++)

printf(

"%lld\n

",ddp[n]);

return0;

}

HAOI2006 數字序列

現在我們有乙個長度為n的整數序列a。但是它太不好看了,於是我們希望把它變成乙個單調嚴格上公升的序列。但是不希望改變過多的數,也不希望改變的幅度太大。輸入格式 第一行包含乙個數n,接下來n個整數按順序描述每一項的鍵值。輸出格式 第一行乙個整數表示最少需要改變多少個數。第二行乙個整數,表示在改變的數最少...

HAOI2006 數字序列

現在我們有乙個長度為n的整數序列a。但是它太不好看了,於是我們希望把它變成乙個單調嚴格上公升的序列。但是不希望改變過多的數,也不希望改變的幅度太大。輸入格式 第一行包含乙個數n,接下來n個整數按順序描述每一項的鍵值。輸出格式 第一行乙個整數表示最少需要改變多少個數。第二行乙個整數,表示在改變的數最少...

HAOI2006 數字序列 題解

題目鏈結 現在我們有乙個長度為 n的整數序列 a。但是它太不好看了,於是我們希望把它變成乙個單調嚴格上公升的序列。但是不希望改變過多的數,也不希望改變的幅度太大。第一行是乙個整數,表示序列長度 n。第二行有 n個整數,第 i個整數表示序列的第 i項 ai 第一行輸出乙個整數,表示最少需要改變多少個數...