博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【POJ3612】【USACO 2007 Nov Gold】 1.Telephone Wire 动态调节
阅读量:7099 次
发布时间:2019-06-28

本文共 801 字,大约阅读时间需要 2 分钟。

意甲冠军:

一些树高给出。行一种操作:把某棵树增高h,花费为h*h。

操作完毕后连线,两棵树间花费为高度差*定值c。

求两种花费加和最小值。

题解:

跟NOIP2014 D1T3非常像。

暴力动规是O(1*10^9)会T

所以单调队列一下,每颗树扫两遍结束。

完事,看水代码吧。

#include 
#include
#include
#include
#define N 101000#define M 105#define inf 0x3f3f3f3fusing namespace std;int f[2][M],g[2][M],n,c;int now,last;int h[N];int main(){// freopen("test.in","r",stdin); int i,j,k; scanf("%d%d",&n,&c); for(i=1;i<=n;i++)scanf("%d",&h[i]); now=0,last=1; for(i=1;i<=n;i++) { now^=1,last^=1; int temp=inf; for(j=100;j>=h[i];j--) { temp=min(temp+c,f[last][j]); f[now][j]=temp+(j-h[i])*(j-h[i]); } temp=inf; for(j=1;j<=100;j++) { temp=min(temp+c,f[last][j]); f[now][j]=min(f[now][j],temp+(j-h[i])*(j-h[i])); if(j

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的文章
浪潮之巅读后感
查看>>
Mathematica 函数调用发生异常时停止计算
查看>>
Linux service命令
查看>>
TCP发送源码学习(2)--tcp_write_xmit
查看>>
Android第三方开源图片裁剪截取:cropper
查看>>
C# 中英文符号互转
查看>>
ACM HDU 1219 AC me(简单题,但是花了很长时间才AC)
查看>>
Ethernet LEDs
查看>>
row_number()over函数的使用(转)
查看>>
怎样在Delphi中屏蔽Flash控件的右键弹出菜单
查看>>
[BuildRelease]Mozilla Build Tools - Autoconf + GNU Make
查看>>
DRM-内容数据版权加密保护技术学习(上):视频文件打包实现(转)
查看>>
Html.ActionLink 几种重载方式说明及例子
查看>>
使用mysql触发器脚本,解决流水数据的添加。
查看>>
SIP and RTP Stack
查看>>
Activity间用Intent、Bundle、onActivityResult进行传值
查看>>
在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。
查看>>
AC自动机 - 多模式串的匹配运用 --- HDU 3065
查看>>
B-树学习笔记
查看>>
黑客发布iOS 4.1永久越狱程序
查看>>