对于很多决策单调性DP问题,我们很难(但不是不可以)证明其决策满足单调性,所以感觉很像时,可以打表看是否满足。

这道题的精度(?范围)很难搞,开始生怕溢出,看了hzwer的代码,才发现用long double,因为这道题只有乘法,没有除法,并且long double的保存系数的那部分还是挺大的(好像有效位数是64位)。

 #include <cstdio>
#include <cstdlib>
#include <cstring>
#define min(a,b) ((a)<(b)?(a):(b))
#define max(a,b) ((a)>(b)?(a):(b))
#define abs(a) ((a)<0?-(a):(a))
#define mdp 1000000000000000000LL
#define N 100010 typedef long double ddt; struct Trid {
int p, l, r;
Trid(){}
Trid( int p, int l, int r ):p(p),l(l),r(r){}
}; int n, len, pw;
int w[N], sw[N], f[N];
ddt dp[N];
Trid stk[N]; int top; ddt pow( int a, int b ) {
ddt rt = ;
for( int i=; i<=b; i++ )
rt *= a;
return rt;
}
ddt getw( int j, int i ) {
return pow(abs(sw[i]-sw[j-]+i-j-len), pw);
}
ddt calc( int j, int i ) {
ddt rt = dp[j-]+getw(j,i);
if( rt< ) {
fprintf( stderr, "Overflow\n" );
exit();
}
return rt;
}
ddt dodp() {
stk[top=] = Trid( , , n );
dp[] = calc(,);
for( int i=; i<=n; i++ ) {
if( calc(stk[top].p,n)>calc(i,n) ) {
while( stk[top].l>=i && calc(stk[top].p,stk[top].l)>calc(i,stk[top].l) )
top--;
if( stk[top].r==i- ) {
stk[++top] = Trid( i, i, n );
} else {
int lf=max(stk[top].l+,i);
int rg=min(stk[top].r+,n);
while(lf<rg) {
int mid=(lf+rg)>>;
if( calc(stk[top].p,mid)>calc(i,mid) )
rg = mid;
else
lf = mid+;
}
stk[top].r = lf-;
stk[++top] = Trid( i, lf, n );
}
}
int lf=, rg=top;
while(lf<rg) {
int mid=(lf+rg+)>>;
if( stk[mid].l>i ) rg=mid-;
else lf=mid;
}
dp[i] = calc(stk[lf].p,i);
}
return dp[n];
}
int main() {
int T;
scanf( "%d", &T );
while( T-- ) {
scanf( "%d%d%d", &n, &len, &pw );
for( int i=; i<=n; i++ ) {
char buf[];
scanf( "%s", buf );
w[i] = strlen(buf);
sw[i] = sw[i-]+w[i];
}
ddt ans=dodp();
if( ans>mdp )
printf( "Too hard to arrange\n" );
else
printf( "%lld\n", (long long)ans );
printf( "--------------------\n" );
}
}

bzoj 1563的更多相关文章

  1. [BZOJ 1563] [NOI 2009] 诗人小G(决策单调性)

    [BZOJ 1563] [NOI 2009] 诗人小G(决策单调性) 题面 一首诗包含了若干个句子,对于一些连续的短句,可以将它们用空格隔开并放在一行中,注意一行中可以放的句子数目是没有限制的.小 G ...

  2. BZOJ 1563 诗人小G

    Description Input Output 对于每组数据,若最小的不协调度不超过\(10^{18}\),则第一行一个数表示不协调度若最小的不协调度超过\(10^{18}\),则输出"\ ...

  3. 【BZOJ 1563】 (四边形优化、决策单调性)

    1563: [NOI2009]诗人小G Time Limit: 100 Sec  Memory Limit: 64 MBSubmit: 2611  Solved: 840 Description In ...

  4. 【BZOJ 1563】 [NOI2009]诗人小G

    Description Input Output 对于每组数据,若最小的不协调度不超过1018,则第一行一个数表示不协调度若最小的不协调度超过1018,则输出"Too hard to arr ...

  5. [BZOJ] 1563: [NOI2009]诗人小G

    1D/1D的方程,代价函数是一个p次函数,典型的决策单调性 用单调队列(其实算单调栈)维护决策点,优化转移 复杂度\(O(nlogn)\) #include<iostream> #incl ...

  6. BZOJ刷题指南(转)

    基础(65) 巨水无比(4):1214.3816:2B题:1000A+B:2462:输出10个1 模拟/枚举/暴力(15):4063傻子模拟:1968小学生暴力:1218前缀和暴力:3856读英文:4 ...

  7. BZOJ 2127: happiness [最小割]

    2127: happiness Time Limit: 51 Sec  Memory Limit: 259 MBSubmit: 1815  Solved: 878[Submit][Status][Di ...

  8. BZOJ 3275: Number

    3275: Number Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 874  Solved: 371[Submit][Status][Discus ...

  9. BZOJ 2879: [Noi2012]美食节

    2879: [Noi2012]美食节 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1834  Solved: 969[Submit][Status] ...

随机推荐

  1. 【转】Spring MVC 标签总结

    1.@Controller 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ...

  2. mipi 调试经验【转】

    转自:http://blog.csdn.net/g_salamander/article/details/9163455 版权声明:本文为博主原创文章,未经博主允许不得转载. 以下是最近几个月在调试 ...

  3. .net 运行中出现的错误解决方法记录

    1.应用程序无法启动,因为应用程序的并行配置不正确.有关详细信息,请参阅应用程序事件日志,或使用命令行sxstrace.exe工具. https://jingyan.baidu.com/article ...

  4. 数据库-mysql管理

    MySQL 管理 启动及关闭 MySQL 服务器 首先,我们需要通过以下命令来检查MySQL服务器是否启动: ps -ef | grep mysqld 如果MySql已经启动,以上命令将输出mysql ...

  5. 移动端,PC端,微信等常用平台和浏览器判断

    var wzw={ //浏览器相关信息 //android webview 需要app进行支持,Android web view初始化时,在navigator中添加标识 browser:{ versi ...

  6. WINDOWS 2008 采用IP策略解决445,139等病毒攻击问题

    @echo off title 创建IP安全策略,屏蔽135.. . . . 等端口 :: 配置说明文档地址 :: http://blog.csdn.net/lpc_china/article/det ...

  7. SQL update select语句

    SQL update select语句 最常用的update语法是:UPDATE <table_name>SET <column_name1> = <value>, ...

  8. WordPress用户登录后重定向到指定页面

    这篇文章将向您展示WordPress用户登录后如何重定向到指定页面或者文章的技巧. 一.重定向到网站管理面板. 将以下代码添加到您的当前主题的 functions.php 文件中: function  ...

  9. HTML小工具

    一般可能用的到的符号代码: 符号 HTML 符号 HTML     & & < < > > ⁄ ⁄ " " ¸ ¸ ° ° ½ ½ ¼ ¼ ...

  10. day6 xml文件格式的处理

        XML处理模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公 ...