codeforces

bzoj

description

有\(n\)个人要坐\(k\)辆车。如果第\(i\)个人和第\(j\)个人同坐一辆车,就会产生\(w_{i,j}\)的代价。

求最小化代价。\(n\le4000\)

sol

凸优化+决策单调性优化

这么一讲其实这题就已经做完了,复杂度\(O(n\log n\log w)\)

code

\(bzoj\)上需要卡常。上网蒯个读入优化模板就行了。

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int gi(){
int x=0,w=1;char ch=getchar();
while ((ch<'0'||ch>'9')&&ch!='-') ch=getchar();
if (ch=='-') w=0,ch=getchar();
while (ch>='0'&&ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar();
return w?x:-x;
}
const int N = 4005;
struct node{int j,l,r;}q[N];
int n,k,s[N][N],f[N],g[N],hd,tl;
int cal(int j,int i){
return f[j]+(s[i][i]-s[i][j]-s[j][i]+s[j][j]>>1);
}
bool better(int i,int j,int k){
int si=cal(i,k),sj=cal(j,k);
return si<sj||(si==sj&&g[i]<g[j]);
}
int binary(int i,int j){
int l=q[tl].l,r=n,res=0;
while (l<=r){
int mid=l+r>>1;
if (better(i,j,mid)) res=mid,r=mid-1;
else l=mid+1;
}
return res;
}
void solve(int c){
q[hd=tl=1]=(node){0,0,n};
for (int i=1;i<=n;++i){
++q[hd].l;if (q[hd].l>q[hd].r) ++hd;
f[i]=cal(q[hd].j,i)+c;g[i]=g[q[hd].j]+1;
if (hd>tl||better(i,q[tl].j,n)){
while (hd<=tl&&better(i,q[tl].j,q[tl].l)) --tl;
if (hd>tl) q[++tl]=(node){i,i,n};
else{
int x=binary(i,q[tl].j);
q[tl].r=x-1;q[++tl]=(node){i,x,n};
}
}
}
}
int main(){
n=gi();k=gi();
for (int i=1;i<=n;++i)
for (int j=1;j<=n;++j)
s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+gi();
int l=0,r=s[n][n],res=0;
while (l<=r){
int mid=l+r>>1;solve(mid);
if (g[n]<=k) res=mid,r=mid-1;else l=mid+1;
}
solve(res);printf("%d\n",f[n]-k*res);return 0;
}

[CF321E]Ciel and Gondolas&&[BZOJ5311]贞鱼的更多相关文章

  1. CF321E Ciel and Gondolas Wqs二分 四边形不等式优化dp 决策单调性

    LINK:CF321E Ciel and Gondolas 很少遇到这么有意思的题目了.虽然很套路.. 容易想到dp \(f_{i,j}\)表示前i段分了j段的最小值 转移需要维护一个\(cost(i ...

  2. CF321E Ciel and Gondolas

    题意:给定序列,将其分成k段.如果[l, r]在一段,那么每对不相同的i,j∈[l, r]都会有ai,j的代价.求最小总代价. 解:提供两种方案.第三种去bzoj贞鱼的n²算法. 决策单调性优化: 对 ...

  3. 【wqs二分 || 决策单调性】cf321E. Ciel and Gondolas

    把状态看成层,每层决策单调性处理 题目描述 题目大意 众所周知,贞鱼是一种高智商水生动物.不过他们到了陆地上智商会减半.这不?他们遇到了大麻烦!n只贞鱼到陆地上乘车,现在有k辆汽车可以租用.由于贞鱼们 ...

  4. CF321E Ciel and Gondolas & BZOJ 5311 贞鱼

    一眼可以看出$O(kn^{2})$的$dp$方程,然后就不会了呜呜呜. 设$f_{i, j}$表示已经选到了第$i + 1$个数并且选了$j$段的最小代价,那么 $f_{i, j} = f_{p, j ...

  5. BZOJ5311 贞鱼(动态规划+wqs二分+决策单调性)

    大胆猜想答案随k变化是凸函数,且有决策单调性即可.去粘了份fread快读板子才过. #include<iostream> #include<cstdio> #include&l ...

  6. CF321E Ciel and Gondolas 【决策单调性dp】

    题目链接 CF321E 题解 题意:将\(n\)个人分成\(K\)段,每段的人两两之间产生代价,求最小代价和 容易设\(f[k][i]\)表示前\(i\)个人分成\(k\)段的最小代价和 设\(val ...

  7. bzoj5311: 贞鱼

    还是年轻啊算的时候少乘一个4000被卡二分上界了...%%%%bright教我超级快速读D飞bzoj垃圾卡常数据 我们容易写出这样的DP方程:f[i][j]=f[k][j-1]+val(k+1,j) ...

  8. 【BZOJ5311/CF321E】贞鱼/Ciel and Gondolas(动态规划,凸优化,决策单调性)

    [BZOJ5311/CF321E]贞鱼/Ciel and Gondolas(动态规划,凸优化,决策单调性) 题面 BZOJ CF 洛谷 辣鸡BZOJ卡常数!!!!!! 辣鸡BZOJ卡常数!!!!!! ...

  9. BZOJ5311,CF321E 贞鱼

    题意 Problem 5311. -- 贞鱼 5311: 贞鱼 Time Limit: 3 Sec  Memory Limit: 162 MBSubmit: 677  Solved: 150[Subm ...

随机推荐

  1. 手游精品时代,iClap参会TFC高效解决手游问题

    随着“互联网+”概念的广泛应用,文娱类产品跨界融合的现象日益明显,不再以孤立的形态出现在市场中.移动游戏作为泛娱乐产业链的变现末端和关键环节,在传统游戏和VR/AR.HTML5.机器人.智能设备等新业 ...

  2. 1linux的基本命令

    查看命令的帮助信息man 命令名 文件操作touch 建立文件 (对于已存在文件,更新时间)cat 查看文件 (-n 自动加上行号)rm 删除文件cp 拷贝文件mv 移动/重命名文件more 分页查看 ...

  3. CyclicBarrier实现流水处理服务类

    package com.yzu.zhang.thread.concurrent; import java.util.Map.Entry; import java.util.Random; import ...

  4. SoapUI、Jmeter、Postman三种接口测试工具的比较

    1.  用例组织方式 首先是用例组织方式的不同,不同的目录结构与组织方式代表不同工具的测试思想,学习一个测试工具应该首先了解其组织方式. SoapUI的组织方式如下图,最上层是WorkSpace,每个 ...

  5. zabbix-2.4.7环境部署与初始化安装

    一.zabbix简介: zabbix的特点: - 安装与配置简单,学习成本低 - 支持多语言(包括中文) - 免费开源 - 自动发现服务器与网络设备 - 分布式监视以及WEB集中管理功能 - 可以无a ...

  6. 20145302张薇 《网络对抗技术》逆向及BOF基础实践

    20145302张薇 <网络对抗技术>逆向及BOF基础实践 实验内容 实践对象:名为20145302的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单 ...

  7. Web漏洞挖掘之网络信息探测

    我们在搜集目标系统信息的时候主要需要搜集的是:目标服务器系统信息(IP,服务器所用系统等):目标网站子域名:目标网站(服务器)的开放端口:目标域名信息.目标网站内容管理系统(CMS)等. 一.子域名搜 ...

  8. 更改UBoot实现通过loady命令下载代码【转】

    本文转载自:https://blog.csdn.net/qq_36430621/article/details/69630391 最近入手了一块友善之臂的NanoPc-T3,个人感觉还不错,板子的工艺 ...

  9. 使用4K显示器遇到的坑

    第一大坑:鼠标移动变慢,有强烈的滞后感 让人怀疑是不是系统因为要支持4K屏而变慢了,或者是鼠标坏了!甚至猜想是不是4K显示器的屏幕,因为分辨率太高,导致鼠标需要移动的点太多,因而耗时,产生了滞后感. ...

  10. JAVA消息 AMQP

    AMQP(Advanced Message Queuing Protocol)高级的消息队列