CF704B. Ant Man

Solution

经典dpdpdp,第一次见好像是在ZJOIZJOIZJOI的某题?
先按xxx排序
用f[i][j]f[i][j]f[i][j]表示放入前iii个数,有jjj个端点(不算边界点)的最小代价。
每次可以:
1.合并两段折线
2.制造一段新的折线
3.延长一个线段
需要对于向上和向下分别考虑贡献,特判端点情况即可。

时间复杂度O(n2)O(n^2)O(n2)。

Code

#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <cstring>
#include <ctime>
#include <cassert>
#include <string.h>
//#include <unordered_set>
#include <unordered_map>
//#include <bits/stdc++.h>#define MP(A,B) make_pair(A,B)
#define PB(A) push_back(A)
#define SIZE(A) ((int)A.size())
#define LEN(A) ((int)A.length())
#define FOR(i,a,b) for(int i=(a);i<(b);++i)
#define fi first
#define se secondusing namespace std;template<typename T>inline bool upmin(T &x,T y) { return y<x?x=y,1:0; }
template<typename T>inline bool upmax(T &x,T y) { return x<y?x=y,1:0; }typedef long long ll;
typedef unsigned long long ull;
typedef long double lod;
typedef pair<int,int> PR;
typedef vector<int> VI;const lod eps=1e-11;
const lod pi=acos(-1);
const int oo=1<<30;
const ll loo=1ll<<62;
const int mods=998244353;
const int MAXN=5005;
const int INF=0x3f3f3f3f;
/*--------------------------------------------------------------------*/
inline int read()
{int f=1,x=0; char c=getchar();while (c<'0'||c>'9') { if (c=='-') f=-1; c=getchar(); }while (c>='0'&&c<='9') { x=(x<<3)+(x<<1)+(c^48); c=getchar(); }return x*f;
}
ll x[MAXN],a[MAXN],b[MAXN],c[MAXN],d[MAXN],f[MAXN][MAXN];
signed main()
{int n=read(),S=read(),T=read();for (int i=1;i<=n;i++) x[i]=read();for (int i=1;i<=n;i++) a[i]=read();for (int i=1;i<=n;i++) b[i]=read();for (int i=1;i<=n;i++) c[i]=read();for (int i=1;i<=n;i++) d[i]=read();for (int i=0;i<=n;i++)for (int j=0;j<=n;j++) f[i][j]=loo; f[0][0]=0;for (int i=1;i<=n;i++)for (int j=(i!=1);j<n;j++){if (i==S){if (j<n) upmin(f[i][j+1],f[i-1][j]-x[i]+d[i]);if (j>0) upmin(f[i][j-1],f[i-1][j]+x[i]+c[i]);}else if (i==T){if (j<n) upmin(f[i][j+1],f[i-1][j]-x[i]+b[i]);if (j>0) upmin(f[i][j-1],f[i-1][j]+x[i]+a[i]);}else{if (j<n-1) upmin(f[i][j+2],f[i-1][j]-x[i]*2+b[i]+d[i]);if (j>1) upmin(f[i][j-2],f[i-1][j]+x[i]*2+a[i]+c[i]);if (j>1||i>T) upmin(f[i][j],f[i-1][j]+b[i]+c[i]);if (j>1||i>S) upmin(f[i][j],f[i-1][j]+a[i]+d[i]); }}printf("%lld\n",f[n][0]);return 0;
}

CF704B. Ant Man相关推荐

  1. jenkins+ant+jmeter接口测试

    <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl=" ...

  2. 对 Jenkins+ANT+Jmeter 接口测试的实践

    转载地址:https://testerhome.com/topics/5262 1.前言 最近感觉大家都在讲Jenkins+jmeter+ant或maven的使用,但没有说到具体怎么投入到项目使用,只 ...

  3. linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件...

    原创,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4555328.html  之前写过一篇<windows下Android利用ant自动编译.修改配置文件.批量 ...

  4. 编译工具 之 ant

    一.概述 需要设置的环境变量:         JAVA_HOME="D:\JDK",         ANT_HOME="D:\ant",         P ...

  5. linux java 构建工具有哪些,Linux ant --强大的Java开发构建工具

    用途说明 ant严格说来,ant其实并非原生的Linux命令,但它是一个使用广泛.功能强大的跨平台构建工具程序,尤其是进行Java开发时,许多开源的Java项目都使用ant作为构建工具.ant命令一般 ...

  6. Ant Design of React从入门到开发教程

    Ant Design Pro 是一个企业级中后台前端/设计解决方案. 目录: 一:开发前的准备 二:创建页面 三:创建组件并引用 四:封装网络请求和网络请求走向 五:登录流程以及路由权限设置 六:父组 ...

  7. Ant Design Pro 登录流程以及路由权限设置

    登录流程: 1.ant 框架最外层套了 SecurityLayout 布局 SecurityLayout 中判断用户是否登录,做自动跳转路由处理. 里面的 currentUser 和 currentU ...

  8. ant Design Pro 登录状态管理

    未登录自动跳转到登录页面,登录成功不跳转回登录页面的实现代码调用流程. ant Design Pro 是一个企业中后台管理框架,开始做他,第一个肯定是要做登录,下面来看一下它是怎么登录的. 先看路由配 ...

  9. Ant Design Pro 网络请求流程

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 在 Ant Design Pro 中,一个完整的前端 UI 交互到服务端处理流程是这样的: UI 组件交互操作 ...

最新文章

  1. Strategy模式
  2. 16/100. Symmetric Tree
  3. 机器学习知识总结系列-机器学习中的数学-矩阵(1-3-2)
  4. python3判断字典、列表、元组为空以及字典是否存在某个key的方法
  5. 爬get接口_网络字体反爬之起点中文小说
  6. linux安装qq_体验一下,看看 Linux 系统中的 QQ 是什么样子的
  7. 2017级软件2班安卓应用开发课程主页
  8. 华为金融业务部总裁曹冲:没有进入支付市场的计划
  9. js数组的sort排序(获取中位数)
  10. 抖音:红、蓝海品类,如何创作优质内容?
  11. 软件工程:数据流图,数据字典的画法,以及如何转化为软件结构图
  12. PyGobject(十九)布局容器之Alignment
  13. 51Nod 1631 小鲨鱼在51Nod小学 【 扫描线 】
  14. [JAVA加解密]RSA算法、ElGamal算法
  15. 《Go语言网络编程》第一章:体系
  16. 用java怎么算学生的学分绩点,pyhthon 求GPA平均学分绩点
  17. 教你去除开机root字样(酷派大神F2、酷派高通平台手机)
  18. 关于certutil的探究
  19. 发票查验API 发票管理自动化
  20. Unity离线文档的安装与加速

热门文章

  1. 神奇又好玩的谢尔宾斯基雪花!
  2. 已婚男人看见美女都这个眼神?
  3. 上班骚扰男同事被抓到......
  4. 想让数据分析更简便,怎能少了它!
  5. 三个字帮大家总结一下刘强东事件
  6. 《SAS编程与数据挖掘商业案例》学习笔记之二
  7. python从random生成列表_详解Python利用random生成一个列表内的随机数
  8. element文件上传有文件但是后台接收为空_程序员提高篇:大规格文件(G)是如何做分片优化的?...
  9. python中可以表示任意大的整数_Python无法表示99999999999999999999这样大的整数。
  10. tcp拥塞控制_网络TCP的拥塞控制算法简介