【题解】Painting Fence

分治模板。贪心加分治。直接\(O(n^2logn)\)分治过去。考虑一块联通的柱形是子问题的,是递归的,贪心分治就可。记得对\(r-l+1\)取\(min\)。

上好看的代码

#include<bits/stdc++.h>

#define RP(t,a,b) for(register int (t)=(a),edd_=(b);t<=edd_;++t)
#define DRP(t,a,b) for(register int (t)=(a),edd_=(b);t>=edd_;--t)
#define ERP(t,a) for(int t=head[a];t;t=e[t].nx)
#define pushup(x) seg[(x)]=seg[(x)<<1]+seg[(x)<<1|1]
#define midd register int mid=(l+r)>>1
#define TMP template<class ccf>
#define rgt L,R,mid,r,pos<<1|1
#define lef L,R,l,mid,pos<<1
#define all 1,n,1 using namespace std;typedef long long ll;
TMP inline ccf Max(ccf a,ccf b){return a<b?b:a;}
TMP inline ccf Min(ccf a,ccf b){return a<b?a:b;}
TMP inline ccf Abs(ccf a){return a<0?-a:a;}
TMP inline ccf qr(ccf k){
char c=getchar();ccf x=0;int q=1;
while(c<48||c>57)q=c==45?-1:q,c=getchar();
while(c>=48&&c<=57)x=x*10+c-48,c=getchar();
return q==-1?-x:x;}
//-------------template&IO---------------------
const int maxn=5e3+15;
const int inf=2e9+5;
int data[maxn],n; int divd(int l,int r,int cut){
if(l>r) return 0;
register int sav=inf,L=l,ret=0;
RP(t,l,r) if(data[t]-cut>0&&sav>data[t]-cut) sav=data[t]-cut;
RP(t,l,r+1) if(data[t]-cut-sav<=0||t>r) ret+=divd(L,t-1,cut+sav),L=t+1;
return Min(sav+ret,r-l+1);
} int main(){
#ifndef ONLINE_JUDGE
freopen("color.in","r",stdin);
freopen("color.out","w",stdout);
#endif
n=qr(1);RP(t,1,n)data[t]=qr(1);
cout<<divd(1,n,0)<<endl;
return 0;
}

最新文章

  1. 规则“Windows Server 2003 FILESTREAM 修补程序检查” 失败。
  2. hdu2066一个人的旅行(多源点多汇点的最短路径问题)
  3. POJ 2697 A Board Game(Trie判重+BFS)
  4. C#与数据库访问技术总结(五)之Command对象的常用方法
  5. C#生成日期流水账号
  6. (六)CSS伪元素
  7. Java [Leetcode 217]Contains Duplicate
  8. 纯js实现div内图片自适应大小
  9. dfs-hdu-4620-Fruit Ninja Extreme
  10. Python中的变量
  11. 求一个整数数组最大子数组之和,时间复杂度为N
  12. MySQL如何找到表与表之间的关系?
  13. HTTP 错误 500.19 - Internal Server Error 0x80070005 0x80070003
  14. 关于new Date()
  15. SELinux与进程管理
  16. bzoj 1880: [Sdoi2009]Elaxia的路线
  17. 听说尤雨溪在开发vue4.0?是谁煽动了前端圈的焦虑情绪
  18. python DLL接口测试
  19. (转)MFC界面风格
  20. Android.Study.Question

热门文章

  1. Linux网络协议栈之数据包处理过程
  2. Fresco,Facbook强大的图片加载框架
  3. 200多种Android动画效果的强悍框架
  4. HDU1421
  5. 2017.3.27 集成modeler后的一些主要路径(持续更新)
  6. [Golang] 从零開始写Socket Server(2): 自己定义通讯协议
  7. 【Web API系列教程】1.2 — Web API 2中的Action Results
  8. sakila演示数据库安装
  9. bzoj4010【HNOI2015】菜肴制作
  10. 【ORACLE】ORA-27102: out of memory报错的处理