【NOIP】提高组2013 积木大赛
生活随笔
收集整理的這篇文章主要介紹了
【NOIP】提高组2013 积木大赛
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【算法】找規律(聽說還有寫RMQ的www)
【題解】ans+=(a[i]-a[i-1]) ?(i=1...n)(a[i]>a[i-1])
后面比前面大k,說明要新疊加k個區間來達到所需高度。(看似很復雜的區間覆蓋問題,從前往后掃描就很容易得到貪心策略)
#include<cstdio> int n,ans,a[100010]; int main() {scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);if(a[i]>a[i-1])ans+=(a[i]-a[i-1]);}printf("%d",ans);return 0; } View Code?
順便一提,通過差分將區間操作化為兩個單點操作也是常見套路。
轉載于:https://www.cnblogs.com/onioncyc/p/5767148.html
總結
以上是生活随笔為你收集整理的【NOIP】提高组2013 积木大赛的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Less相关
- 下一篇: Tcl学习之--表达式