bzoj傳送門
tim正在擺弄著他設計的「計算機」,他認為這台計算機原理很獨特,因此利用它可以解決許多難題。 但是,有乙個難題他卻解決不了,是這台計算機的輸入問題。新型計算機的輸入也很獨特,假設輸入序列中有一些數字(都是自然數——自然數包括0
00),計算機先讀取第乙個數字s
1s_1
s1,然後順序向後讀入s
1s_1
s1個數字。接著再讀乙個數字s
2s_2
s2,順序向後讀入s
2s_2
s2個數字……依此類推。不過只有計算機正好將輸入序列中的數字讀完,它才能正確處理資料,否則計算機就會進行自毀性操作! tim現在有一串輸入序列。但可能不是合法的,也就是可能會對計算機造成破壞。於是他想對序列中的每乙個數字做一些更改,加上乙個數或者減去乙個數,當然,仍然保持其為自然數。使得更改後的序列為乙個新型計算機可以接受的合法序列。 不過tim還希望更改的總代價最小,所謂總代價,就是對序列中每乙個數操作的引數的絕對值之和。
寫乙個程式: 從檔案中讀入原始的輸入序列; 計算將輸入序列改變為合法序列需要的最小代價; 向輸出檔案列印結果。
輸入格式
輸入檔案包含兩行,第一行乙個正整數n
nn,n
<
1000001
n<1 000 001
n<10
0000
1。 輸入檔案第二行包含n
nn個自然數,表示輸入序列。
輸出格式
僅乙個整數,表示把輸入序列改變為合法序列需要的最小代價,保證最小代價小於109
10^9
109。
輸入樣例#1:
4
2 2 2 2
輸出樣例#1:1
如果我們把每個點以及其可以到達點連起來, 我們可以得到乙個dag。 更改數字可以等價於:我們可以花費1
11的代價向後走一步, 或向前走一步。 這樣我們就建立了乙個最短路模型, 暴力連邊最短路即可。
注意我們必須要先走一條原來的邊才能走邊長為1的邊, 所以邊有乙個左邊界, 連邊的時候應該注意。
**如下:
#include
#include
#include
#include
#include
#include
#include
#define r register
#define in inline
#define w while
#define gc getchar()
#define mx 1005000
template
<
class
t>
in void
in(t &x)
struct pass
;in bool
operator
<
(const pass &x,
const pass &y)
__gnu_pbds::priority_queue q;
__gnu_pbds::priority_queue
::point_iterator hdle[mx]
;int head[mx]
, dis[mx]
, pre[mx]
, nex[mx]
;bool vis[mx]
;int dot, cnt;
struct edge edge[mx <<3]
;in void
add(r int from, r int to, r int val)
, head[from]
= cnt;
}void
dj(r int st)
), dis[st]=0
; pass cur; r int now, i;
w (!q.empty()
)), vis[edge[i]
.to]
=true
;else q.
modify
(hdle[edge[i]
.to],)
;}}}
printf
("%d"
, dis[dot +1]
);}int
main
(void
)for
(r int i = r; i <= dot;
++i)
add(i, i +1,
1),add
(i, i -1,
1);dj
(1);
}
COGS 2259 異化多肽
qaq 很明顯我們是可以搞一下指數生成函式的 然而複雜度是o m n2 o m n2 無法優化 換個方式做生成函式 a x 表示 質量為 x 的 氨基酸有幾類 b x i 0 a x i b x i 0 a x i 顯然答案是b x 中的n次項係數 上面的式子即為乙個無限等比數列求和 度度的公式s ...
COGS2259 異化多肽
傳送門 聽說是多項式求逆的模板題,以後不怕沒地方練多項式求逆啦哈哈 我們設使用乙個氨基酸能組成質量為 n 的多肽數量這個數列為 設它的生成函式為 a x 顯然有 begina x sum infty sum m c j i end 即 a x 的 i 次方係數即為相對分子質量為 i 的氨基酸數量。我...
Poj2259(團體佇列)
題目大意 有t個團隊的人排隊,每有乙個新來的人時,如果他有隊友正在排隊,那麼他就會站在他隊友的後面。如果沒有隊友,就站在隊伍的最後面。輸入每個團隊中所有隊員的編號,要求支援如下3中指令 enqueue x 編號為x的人進入長隊 dequeue 長隊的隊首出隊 stop 停止模擬。對於每個dequeu...