Description

Soluton

666这道题竟然用凸包。。。

维护r和c的下凸壳。哪个斜率大走哪个。

证明:我们先不考虑其他的,只考虑两条路,如下图:

设图的长度为x,宽度为y。如果我们要走上面的路径,则r1*y+c1*x>=r2*y+c2*x。

移项得$\frac{(r1-r2)}{x}\geq \frac{(c2-c1)}{y}$。

显然对于只有两条路的情况,证明成立。

感性理解一下,最终的最优路径必然是由无数点的最优路径组成,如S->T1->T2->T3->T4。。。->T

所以,我就厚着脸皮认为它成立啦。

Code

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int n,m;
int r[],c[],qr[],topr=,qc[],topc=;
int tpr,tpc;
long long ans;
int main()
{
scanf("%d%d",&n,&m);
for (int i=;i<=n;i++)
{
scanf("%d",&r[i]);
while (topr>&&1ll*(r[i]-r[qr[topr]])*(qr[topr]-qr[topr-])<1ll*(r[qr[topr]]-r[qr[topr-]])*(i-qr[topr])) topr--;
qr[++topr]=i;
}
for (int i=;i<=m;i++)
{
scanf("%d",&c[i]);
while (topc>&&1ll*(c[i]-c[qc[topc]])*(qc[topc]-qc[topc-])<1ll*(c[qc[topc]]-c[qc[topc-]])*(i-qc[topc])) topc--;
qc[++topc]=i;
}
tpr=tpc=;
while (tpr<topr&&tpc<topc)
{
if (1ll*(r[qr[tpr+]]-r[qr[tpr]])*(qc[tpc+]-qc[tpc])<=1ll*(c[qc[tpc+]]-c[qc[tpc]])*(qr[tpr+]-qr[tpr]))
ans+=1ll*(qr[tpr+]-qr[tpr])*c[qc[tpc]],tpr++;
else ans+=1ll*(qc[tpc+]-qc[tpc])*r[qr[tpr]],tpc++;
}
if (tpr==topr) ans+=1ll*(m-qc[tpc])*r[n];else ans+=1ll*(n-qr[tpr])*c[m];
cout<<ans;
}

最新文章

  1. nginx源码分析之hash的实现
  2. jQuery的页面载入
  3. hibrenate @ManyToOne(fetch = FetchType.EAGER) 和 lazy 区别
  4. wxPYTHON图形化软件开发(一)---LOMO工具箱
  5. SQL Server如何在变长列上存储索引
  6. 使用JdbcTemplate报 Incorrect column count: expected 1, actual 5错误解决
  7. CC2540开发板学习笔记(六)&mdash;&mdash;AD控制(自带温度计)
  8. wireshark常用的过滤命令
  9. WPF 之 自定义窗体标题栏
  10. 教您如何检查oracle死锁,决解死锁
  11. 推荐十款非常优秀的 HTML5 在线设计工具
  12. jsp中获取json字符串,并解析
  13. BZOJ-1491-社交网络
  14. Mac ssh启动和停止
  15. mybatis原理分析学习记录,mybatis动态sql学习记录
  16. mac 常用技巧
  17. zabbix安装源
  18. Centos 7 docker 启动容器 iptables 报 No chain/target/match by that name
  19. day 2:计算机的基础知识,编程语言分类
  20. 用Python实现数据结构之树

热门文章

  1. JAVA中正则表达式学习总结
  2. TensorFlow函数(三)tf.variable_scope() 和 tf.name_scope()
  3. map详解&lt;一&gt;
  4. TCP连接三次握手协议,释放连接四次挥手,以及使用 awl伪造mac地址进行多线程syn洪泛攻击。
  5. Kmalloc和Vmalloc的区别
  6. javascript 获取排列后的对象建值
  7. 【MySQL】基本语句
  8. 【CSU 1803】2016 (数学)
  9. eclipse手动安装alibaba代码规范插件+取消阿里编码规约插件扫描出来的警告及错误
  10. jdk 配置