博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[BZOJ1563][NOI2009]诗人小G[决策单调性优化]
阅读量:7111 次
发布时间:2019-06-28

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

int T, n, m, l, p, pre[MAXN], q[MAXN], h, t, b[MAXN];//b[i]表示决策点是i的最后一个位置llf dp[MAXN];char s1[35]; inline llf get(int i, int j) {  return dp[j] + Pow(abs(pre[i] - pre[j] + i - j - 1 - m), p);} inline int get_pos(int x, int y) {//计算x是决策点的最后一个位置  int l = y+1, r = n, ans = 0;  while (l <= r)     if (get(mid, y) > get(mid, x)) ans = mid, l = mid+1;    else r = mid-1;  return ans;} int main() {#ifdef LOCAL_DEBUG  // freopen("data.in", "r", stdin);  Dbg = 1; uint tim1 = clock();#endif  in, T;  while (T--) {    h = 1, t = 0;    q[++t] = 0;    in, n, m, p;    lop(i,1,n) {      in, s1;      pre[i] = strlen(s1) + pre[i - 1];    }    lop(i,1,n) {      while (h < t && b[q[h]] < i) ++h;      dp[i] = get(i, q[h]);      while (h < t && b[q[t - 1]] >= get_pos(q[t], i)) --t;      b[q[t]] = get_pos(q[t], i), q[++t] = i;    }    if (dp[n] > infl) puts("Too hard to arrange");    else out, (ll)dp[n], '\n';    puts("--------------------");  }#ifdef LOCAL_DEBUG  fprintf(stderr, "\ntime:%.5lfms", (clock() - tim1) / (1.0 * CLOCKS_PER_SEC) * 1000);#endif  return 0;}

转载于:https://www.cnblogs.com/storz/p/10190818.html

你可能感兴趣的文章
记录一次bug。asp.net 编译后 页面一刷新就报错,在刷新就正常。 (vs2005)
查看>>
Java环境准备
查看>>
Swift3.0P1 语法指南——函数
查看>>
Swift3.0P1 语法指南——下标
查看>>
关于java如何传参的试验
查看>>
Linux下修改Mysql的用户(root)的密码
查看>>
Jenkins+Git+Maven搭建自动化构建平台
查看>>
更新服务
查看>>
Python随笔
查看>>
Python新建/删除文件夹
查看>>
平坦化
查看>>
Andriod NDK assets的三个相关知识
查看>>
JS(JavaScript)脚本库的积累
查看>>
2018/05/23,科4的同乡
查看>>
实用工具箱app开发日记3
查看>>
深入理解计算机系统9——虚拟存储器
查看>>
新しい道に、頑張ります!
查看>>
删除有序链表中重复的项
查看>>
IQD文件模板以及cs7g.ini信息
查看>>
(C#版本)提升SQlite数据库效率——开启事务,极速插入数据,3秒100万,32秒1000万条数据...
查看>>