[演算法設計與分析]鋪設道路 //貪心
阿新 • • 發佈:2021-10-27
luogu P5019
NOIP2018 day1 t1
喪心病狂壓空間和時間(還不是因為柿子要挑軟的捏qwq)
1 // 2 // main.cpp 3 // 鋪設道路 4 // 5 // Created by sylvia on 2021/10/27. 6 // Copyright © 2021 apple. All rights reserved. 7 // 8 /* 9 貪心思想:如果當前的坑比前面一個坑深,就把ans加上多出來的深度。 10 因為當我們遇到兩個連續的坑時一定會使用木桶原理儘可能多的提高水平線 11 我喪心病狂的為了壓時間和空間,搞成了滾動陣列和邊輸入邊處理,O(n)做法 12 真的太太太短了13 沒記錯好像還是某年NOIP的原題???總之感覺自己見過 14 */ 15 #include<iostream> 16 #include<cstdio> 17 using namespace std; 18 int n,a[2],ans=0; 19 int main() 20 { 21 cin>>n>>a[1]; 22 ans=a[1]; 23 for(int i=2;i<=n;i++) 24 { 25 cin>>a[i%2]; 26 if(a[i%2]>a[(i+1)%2]) ans+=a[i%2]-a[(i+1)%2]; 27 } 28 cout<<ans<<endl; 29 return 0; 30 }