bzoj1049[HAOI2006]数字序列
生活随笔
收集整理的這篇文章主要介紹了
bzoj1049[HAOI2006]数字序列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1049: [HAOI2006]數字序列
Time Limit:?10 Sec??Memory Limit:?162 MBSubmit:?1813??Solved:?789
[Submit][Status][Discuss]
Description
現在我們有一個長度為n的整數序列A。但是它太不好看了,于是我們希望把它變成一個單調嚴格上升的序列。
但是不希望改變過多的數,也不希望改變的幅度太大。
Input
第一行包含一個數n,接下來n個整數按順序描述每一項的鍵值。n<=35000,保證所有數列是隨機的
Output
第一行一個整數表示最少需要改變多少個數。 第二行一個整數,表示在改變的數最少的情況下,每個數改變
的絕對值之和的最小值。
Sample Input
45 2 3 5
Sample Output
14
?
被細節惡心到啦。
第一問可以補集轉換,減下標然后求最長不下降子序列,用總序列長度-lis長度水過,關鍵是這個第二問吶。。
有個并不顯然的顯然結論:
若j<i&&f[j]+1==f[i]&&a[j]<=a[i](保證j可以轉移到i)
那么把這段區間中的數值改成a[j]或者a[i]一定是最優的,跑個dp決策
這里有證明
http://pan.baidu.com/share/link?uk=2651016602&shareid=1490516411
?
轉載于:https://www.cnblogs.com/wsy01/p/8324600.html
總結
以上是生活随笔為你收集整理的bzoj1049[HAOI2006]数字序列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL学习笔记1(增删查改)
- 下一篇: 动态规划:从新手到专家