【NOIP2017练习】鏖战字符串(斜率优化DP)
题意:

var dp:array[..]of int64;
s:array[..]of int64;
q1,q2,f:array[..]of longint;
l,r:array[..]of longint;
n,a,b,c,d,l0,r0,i,x,nowl,nowr,t1,w1,t2,w2,t,j,k:longint;
ch:ansistring; function cmp(x,y,z:longint):boolean;
var x1,y1,x2,y2:int64;
begin
x1:=sqr(s[x])*a-sqr(s[y])*a+dp[x]-dp[y];
y1:=s[x]-s[y];
x2:=sqr(s[y])*a-sqr(s[z])*a+dp[y]-dp[z];
y2:=s[y]-s[z];
if x1*y2>=x2*y1 then exit(true);
exit(false);
end; function clac(j,i:longint):int64;
begin
exit(dp[j]+sqr(s[i]-s[j])*a+b);
end; function min(x,y:int64):int64;
begin
if x<y then exit(x);
exit(y);
end; begin
assign(input,'string.in'); reset(input);
assign(output,'string.out'); rewrite(output);
readln(n,a,b,c,d,l0,r0);
readln(ch);
for i:= to n do f[i]:=ord(ch[i])-ord('a')+;
for i:= to n do
begin
read(x); s[i]:=s[i-]+x;
end;
t1:=; w1:=; q1[]:=; dp[]:=;
t2:=; w2:=;
nowl:=; nowr:=;
for i:= to n do
begin
while (t1<w1)and(clac(q1[t1],i)>=clac(q1[t1+],i)) do inc(t1);
dp[i]:=clac(q1[t1],i); inc(l[f[i]]); inc(r[f[i]]);
while l[f[i]]>r0 do
begin
dec(l[f[nowl]]);
inc(nowl);
while (t2<=w2)and(q2[t2]+<nowl) do inc(t2);
end;
while r[f[i]]>=l0 do
begin
if nowr> then
begin
dec(r[f[nowr]]);
if r[f[i]]<l0 then
begin
inc(r[f[nowr]]);
break;
end;
end;
while (t2<=w2)and(dp[nowr]-s[nowr]*c<=dp[q2[w2]]-s[q2[w2]]*c) do dec(w2);
inc(w2); q2[w2]:=nowr;
inc(nowr);
end;
if t2<=w2 then
begin
t:=q2[t2];
dp[i]:=min(dp[i],dp[t]+(s[i]-s[t])*c+d);
end;
while (t1<w1)and cmp(q1[w1-],q1[w1],i) do dec(w1);
inc(w1); q1[w1]:=i;
end;
for i:= to n do writeln(dp[i]);
close(input);
close(output);
end.
【后记】
在Abwad和nbc同时将最后一个子串删去时,一个带着黑色方框眼镜,方脸,穿着高腰裤的长者,乘着圣洁的祥云,飞进了YYHS的机房。
在他伟大的思想的启发下,Abwad和nbc终于放下了对名利的追逐,找到了人生的意义——吃吃吃。从此,他们过上了幸福快乐的生活……
【NOIP2017练习】鏖战字符串(斜率优化DP)的更多相关文章
- bzoj-4518 4518: [Sdoi2016]征途(斜率优化dp)
题目链接: 4518: [Sdoi2016]征途 Description Pine开始了从S地到T地的征途. 从S地到T地的路可以划分成n段,相邻两段路的分界点设有休息站. Pine计划用m天到达T地 ...
- bzoj-1096 1096: [ZJOI2007]仓库建设(斜率优化dp)
题目链接: 1096: [ZJOI2007]仓库建设 Description L公司有N个工厂,由高到底分布在一座山上.如图所示,工厂1在山顶,工厂N在山脚.由于这座山处于高原内陆地区(干燥少雨),L ...
- [BZOJ3156]防御准备(斜率优化DP)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3156 分析: 简单的斜率优化DP
- 【BZOJ-1096】仓库建设 斜率优化DP
1096: [ZJOI2007]仓库建设 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3719 Solved: 1633[Submit][Stat ...
- BZOJ 1010: [HNOI2008]玩具装箱toy 斜率优化DP
1010: [HNOI2008]玩具装箱toy Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再 ...
- BZOJ 3156: 防御准备 斜率优化DP
3156: 防御准备 Description Input 第一行为一个整数N表示战线的总长度. 第二行N个整数,第i个整数表示在位置i放置守卫塔的花费Ai. Output 共一个整数,表示最小的战 ...
- HDU2829 Lawrence(斜率优化dp)
学了模板题之后上网搜下斜率优化dp的题目,然后就看到这道题,知道是斜率dp之后有思路就可以自己做不出来,要是不事先知道的话那就说不定了. 题意:给你n个数,一开始n个数相邻的数之间是被东西连着的,对于 ...
- HDU3507 Print Article(斜率优化dp)
前几天做多校,知道了这世界上存在dp的优化这样的说法,了解了四边形优化dp,所以今天顺带做一道典型的斜率优化,在百度打斜率优化dp,首先弹出来的就是下面这个网址:http://www.cnblogs. ...
- HDU 3507 Print Article(斜率优化DP)
题目链接 题意 : 一篇文章有n个单词,如果每行打印k个单词,那这行的花费是,问你怎么安排能够得到最小花费,输出最小花费. 思路 : 一开始想的简单了以为是背包,后来才知道是斜率优化DP,然后看了网上 ...
- 斜率优化dp(POJ1180 Uva1451)
学这个斜率优化dp却找到这个真心容易出错的题目,其中要从n倒过来到1的确实没有想到,另外斜率优化dp的算法一开始看网上各种大牛博客自以为懂了,最后才发现是错了. 不过觉得看那些博客中都是用文字来描述, ...
随机推荐
- CentOS安装GlassFish4.0 配置JDBC连接MySQL
转自:http://linux.it.net.cn/CentOS/course/2014/0724/3319.html 版本glassfish-4.0.zip 1.解压,拷贝到指定安装路径 unz ...
- 在Windows上部署Zabbix客户端
将Zabbix for Windows客户端拷贝到windows系统的c盘,修改配置文件的相关配置项后,打开cmd窗口执行: # 安装服务 c:\zabbix\bin\win32\zabbix_age ...
- scala学习笔记4:函数和闭包
以下主要记录的是看完scala in programming这本书functions and closures(第八章)后的要点总结. 1,函数可以存在的地方:函数方法,嵌套函数. 2,关于funct ...
- SpringMvc如何将Url 映射到 RequestMapping (一)
SpringMvc Url 匹配规则详解 最近开始阅读Spring 源码,虽然用了很久的spring ,但是没有真正的分析过Spring时如何工作的.今天重 MVC 的Url匹配规则开始进行Sprin ...
- [BZOJ2456]mode 其它
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2456 这道题有着神奇的内存限制1MB也就是说我们是没办法把读入的数字存下来的. 由于答案求 ...
- iOS Programming Subclassing UITableViewCell
iOS Programming Subclassing UITableViewCell 1.Creating BNRItemCell UITableViewCell is a UIView subc ...
- iOS Programming UIGestureRecognizer and UIMenuController
iOS Programming UIGestureRecognizer and UIMenuController A UIGestureRecognizer intercepts touches ...
- IDEA安装使用
下载地址: https://www.jetbrains.com/idea/download/previous.html 这里我下载的是:2016.3.8版本的 安装: 安装成功后,需要秘钥的话,在 h ...
- linux命令规范
Linux文件后缀: 系统文件:*.conf *.rpm 系统与脚本:*.c *.php 存档文件和压缩文件:*.tar *.gz ……… Linux文件命名规则: 1.大小写敏感 2.除 ...
- ES6语法糖集锦
sublime3安装Es6插件 javascriptNext,然后安装即可 JavaScriptNext - ES6 Syntax()高亮插件 -------------------------- ...