【NOIP2018】【Luogu5019】鋪設道路(貪心,差分)
problem
- 給定一個目標序列,每次操作可以將一個區間全部減1。
- 求最少運算元使序列變為全0。
solution
講個笑話,NOIP2013中DAY1T1的程式碼直接複製貼上都能過這題。
- 考慮區間減法:我們用差分,即
d[l]--,d[r+1]++
表示區間[l,r]全都減1. - 考慮最終序列(全都為0):所以對於d[i]為正,答案累加d[i], 因為最後是0,所以我們一定要減掉d[i]。對於d[i]為負,不用管,因為減掉整數肯定會在正確的位置自己加上,所以正好會抵消。
- 所以最終答案就是差分數列中正數的和。
codes
#include <iostream>
using namespace std;
const int maxn = 100010;
int n, a[maxn], d[maxn], ans;
int main(){
cin>>n;
for(int i = 1; i <= n; i++){
cin>>a[i];
d[i] = a[i]-a[i-1];
if(d[i]>0)ans += d[i];
}
cout<<ans<<'\n';
return 0;
}
相關推薦
【NOIP2018】【Luogu5019】鋪設道路(貪心,差分)
problem 給定一個目標序列,每次操作可以將一個區間全部減1。 求最少運算元使序列變為全0。 solution 講個笑話,NOIP2013中DAY1T1的程式碼直接複製貼上都能過這題。 考慮區間減法:我們用差分,即d[l]--,d[r+1]++
【BZOJ3174】[TJOI2013]拯救小矮人(貪心,動態規劃)
貪心 als for inline bzoj3 ostream return ret name 【BZOJ3174】[TJOI2013]拯救小矮人(貪心,動態規劃) 題面 BZOJ 洛谷 題解 我們定義一個小矮人的\(A_i+B_i\)為它的逃跑能力。 我們發現,如果有兩個
【CodeForces954G】Castle Defense(二分答案+差分)
getc AD set urn char class pos ref ++i Description 題目鏈接 Solution 二分答案,套一個差分標記即可 每次放弓箭手顯然越右邊越優 Code #include <cstdio> #include <a
【BZOJ4755】扭動的回文串(Manacher,哈希)
ring problem def www. 二分 cpp div char class 【BZOJ4755】扭動的回文串(Manacher,哈希) 題面 BZOJ 題解 不要真的以為看見了回文串就是\(PAM,Manacher\)一類就可以過。 這題顯然不行啊。 我們主要考
【POJ - 3253】Fence Repair(貪心,時光倒流)
題幹: Description Farmer John wants to repair a small length of the fence around the pasture. He measures the fence and finds that he needs N
【CodeForces - 349B】Color the Fence (貪心,填數)
題幹: Igor has fallen in love with Tanya. Now Igor wants to show his feelings and write a number on the fence opposite to Tanya's house. Igor thinks
【牛客 - 302哈爾濱理工大學軟體與微電子學院第八屆程式設計競賽同步賽(低年級)】小樂樂切割方塊(思維,水題)
題幹: 小樂樂的作業本是2n*2n的方格本。 某天小樂樂的童鞋,想要考驗一下小樂樂。 他將小樂樂的一張方格紙中的某個格子(x,y)塗成黑色, 小樂樂能否在將4*4的方格本沿著方格邊緣且切割線與黑色方格不存在公共交點的情況下將方格本切割成兩部分。 兩部分可以通過旋
【EOJ3654】管理孩子(貪心,二分答案)
題意:有一棵n個點的樹,其中有k個是關鍵點,將樹分割成若干部分,每部分至少包含一個關鍵點,求最大分割大小的最小值 思路: 最後特判一下f[1]的值 1 #include<cstdio> 2 #include<cstring> 3 #include<st
【BZOJ4196】[NOI2015] 軟體包管理器(樹鏈剖分)
點此看題面 大致題意: 有nnn個軟體包,它們的依賴關係形成一棵樹。現在,問你安裝或解除安裝一個軟體包,會影響多少個軟體包的安裝狀態。 樹鏈剖分 這道題應該是 樹鏈剖分 演算法比較入門的題目吧。 Link 對於安裝操作 我們對安裝和解除安裝兩種操作分別
【NIOIP2016提高】天天愛跑步(LCA+樹上差分)
近幾年複賽最難的樹上問題了。 幾個月前做是參照題解的方法,用了可持久化線段樹在樹上無腦維護和統計。 當時的做法早已忘記,於是回過來自己做了做,其實遠沒有那麼難做,只要發現一些奇妙的性質。 對於一個玩家s->t,如圖。 對於圖中a點的觀察員存在這樣一個式子
【洛谷P4315】月下“毛景樹”(樹鏈剖分)
這是一道毒瘤題。 首先題目中給的是邊權而不是點權,但是我們把邊權移到點上就行了 但是要注意,之後我們修改u,v兩點之間的路徑時,就不要修改他們的lca,以及當要修改單邊的時候,把邊的編號*2(因為是雙向邊),然後挑深度大的那個點來修改 重點是區間覆蓋tag和區間加tag。首先注意,進行區間覆蓋時,一定要清零區
【codeforce】-#669A-Little Artem and Presents(數學,找規律)
A. Little Artem and Presents time limit per test 2 seconds memory limit per test 256 me
5961. 【NOIP2018提高組D1T1】鋪設道路
Time Limits: 1000 ms Memory Limits: 524288 KB Description 春春是一名道路工程師,負責鋪設一條長度為 n 的道路。 鋪設道路的主要工作是填平下陷
【NOIP2018提高組D1T1】鋪設道路
這題不用講了吧,一遍掃直接過 #include<cstdio> using namespace std; int n,a[100010],ans=0; inline int read() { int x=0; char c=getchar(); while
JZOJ5932. 【NOIP2018模擬10.27】情報中心
傳送門 preface 這道題資料超級水,暴力70。正解也超級玄學,需要各種卡常技巧。 分析 首先看資料範圍,貌似O(k)才能過廢話。既然是要O(k)的出答案,那就只能預處理了。 設f[i][j][k]表示以第i好結點為起點,在最短距離不超過j的情況下,是否能到達k號結點。對於這樣的東西
jzoj5938. 【NOIP2018模擬10.30】分離計劃(二分)
5938. 【NOIP2018模擬10.30】分離計劃 Description 眾所周知,小Z擁有者足以毀滅世界的力量,可惜他不能控制這份力量,小J和小Z的關係十分親密,一天小J預感到了小Z體內的力量將要爆發。 這次爆發的力量比以往都要強大,以至於將小Z分為了兩個整體,彼此之間靠著萬
jzoj5935. 【NOIP2018模擬10.29】小凱學數學(區間dp)
5935. 【NOIP2018模擬10.29】小凱學數學 Description 由於小凱上次在找零問題上的疑惑,給大家在考場上帶來了很大的麻煩,他決心好好學習數學 本次他挑選了位運算專題進行研究 他發明了一種叫做“小凱運算”的運算子: a$b =( (a&b) + (a|b
jzo5934. 【NOIP2018模擬10.29】列隊(二分圖匹配)
5934. 【NOIP2018模擬10.29】列隊 Description Sylvia是一個熱愛學習的女孩子。 在平時的練習中,他總是能考到std以上的成績,前段時間,他參加了一場練習賽,眾所周知,機房是一個 的方陣。這天,他又打爆了std,感到十分無聊,便想要hack機房內同學的
jzoj5922. 【NOIP2018模擬10.23】sequence(組合數)
5922. 【NOIP2018模擬10.23】sequence Description 小 F 是一位 Hack 國的居民,他生活在一條長度為 n 的街道上,這個街道上總共有 n 個商店。每個商店裡售賣著不同的 Hack 技能包,每個商店本身也會有個便利值。初始時,每個商店的便利值均
jzoj5920. 【NOIP2018模擬10.21】風箏(dp,最長上升子序列)
5920. 【NOIP2018模擬10.21】風箏 Description 當一陣風吹來,風箏飛上天空,為了你,而祈禱,而祝福,而感動…… Description oyiya 在 AK 了 IOI 之後來到了鄉下,在田野中玩耍,放鬆身心。 他發現前面有一排小朋