[算法设计与分析]铺设道路 (贪心)
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 }