Description

一只带着先进设备和药物的医疗团队来到了埃博拉病毒疫区的某个非洲国家。这个国家有n个村庄,均坐落在该国唯一的一条公路旁,n个村庄依次标号为1,2,…n。第i个村庄有a_i个埃博拉感染者。
到来后的第一天早晨,医疗团队在第1个村庄。每天他们可以选择治疗所在村庄的村民,这样所有感染者都会痊愈;他们也可以选择前往相邻的一个村庄,路程需要1天。每天结束时,如果第i个村庄的a_i个感染者没有痊愈,那么他们会死去,同时会有另外a_i个人被感染。也就是说,如果第i个村庄没有被治疗,那么每天这个村庄会死去a_i个人。
医疗团队在经过村庄i时,可能选择不治疗这个村庄而前往下一个村庄i+1。但为了不让村民失去希望,如果医疗团队在村庄j决定往回走时,则他们要治疗村庄j之前所有没有被治疗的村庄,同时在返回的过程中,如果经过没有接受治疗的村庄,他们需要停下来进行治疗。
医疗团队最终会治愈所有村民。作为团队的领导人,你需要得出在合理规划行程下最少的死亡人数。
 
 

Input

第一行为一个正整数n,表示村庄的个数。接下来一行是n个正整数a_i(1<=a_i<=10^9),为每个村庄的感染人数

Output

输出一个整数,表示在治愈所有村民前最少的死亡人数。

Sample Input

6
40 200 1 300 2
10

Sample Output

1950

HINT

100%的数据,n<=3000

题解:
设g[i][j]表示从j开始走,走到i,然后回头到j,i到j之间的村子的最小死亡人数
显然g[i][i]=0
考虑j这个村子一开始是治疗还是被跳过
所以g[i][j]=g[i][j+1]+sum[j+1,i]+min((i-j)*3*a[j],sum[j+1,i])
然后设f[i]表示走到i,且前面的都治好了的情况下,总共的最小死亡人数
转移就是枚举j,考虑从j+1出发到i,然后回头到j+1,再回头到i
即f[i]=min{f[j]+g[i][j+1]+sum[i+1,n]*((i-j)*4-2)}
复杂度O(n2)
PS:这也是jsoi2016R2D2T1
code:
 #include<cstdio>
#include<iostream>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long int64;
char ch;
bool ok;
void read(int &x){
for (ok=,ch=getchar();!isdigit(ch);ch=getchar()) if (ch=='-') ok=;
for (x=;isdigit(ch);x=x*+ch-'',ch=getchar());
if (ok) x=-x;
}
void read(int64 &x){
for (ok=,ch=getchar();!isdigit(ch);ch=getchar()) if (ch=='-') ok=;
for (x=;isdigit(ch);x=x*+ch-'',ch=getchar());
if (ok) x=-x;
}
const int maxn=;
int n;
int64 a[maxn],sum[maxn],g[maxn][maxn],f[maxn];
inline int64 s(int l,int r){return sum[r]-sum[l-];}
int main(){
read(n);
for (int i=;i<=n;i++) read(a[i]);
for (int i=;i<=n;i++) sum[i]=sum[i-]+a[i];
for (int i=;i<=n;i++){
g[i][i]=;
for (int j=i-;j>=;j--) g[i][j]=g[i][j+]+s(j+,i)+min(3LL*(i-j)*a[j],s(j+,i));
}
memset(f,,sizeof(f));
f[]=;
for (int i=;i<=n;i++) for (int j=;j<i;j++) f[i]=min(f[i],f[j]+g[i][j+]+s(i+,n)*(4LL*(i-j)-));
printf("%lld\n",f[n]);
return ;
}

bzoj4038: 医疗援助的更多相关文章

  1. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  2. 智软科技医疗器械GSP监管软件通过多省市药监局检查

    提供医疗器械GSP监管软件,通过多省市药监局检查,符合2016年最新GSP监管条例的要求. 企业客户列表 温岭市万悦医疗器械有限公司 杭州市上善医疗器械有限公司 武汉明德生物科技股份有限公司 http ...

  3. 系统建设 > 医疗集团CRM系统建设步骤与分析

    概述 医院客户关系管理系统(Customer Relationship Management,简称CRM)是一个完善的“以病人为中心”的管理系统,为集团/医院/总院分院/管理机构提供院前.院中.院后的 ...

  4. 数据中心第三方服务、金融IT外包服务、社保医疗信息化解决方案,这三类业务是什么关系,区别在哪?

    这个话题很大,牵扯很多,试着回答一下,算是胡扯了. 三类业务的关系,都是IT外包,至于外包的内容很杂.DC的外包,多半是基建和建维,一般不牵扯到软件开发,网站建设类的.金融IT外包就复杂多了,信息系统 ...

  5. 在GMIC听“移动互联网+医疗”的感受 2015-04-29

    “互联网+”这个词挺火的,基本格式是“互联网+传统行业”,比如医疗.教育.交通等等.就更别说电子商务.金融这些领域了,相比已经和互联网分不 开了.在我看来,互联网+的背后,是信息化.智能化.信息沟通的 ...

  6. 《100种过度医疗大公开》:转译自日文版,日文版依据的是美国的“Choosing Wisely”项目。三星推荐

    本书转译自日文,日文版则是在美国的“Choosing Wisely”项目中选择了100个相对常见的过度医疗项目做解说.Choosing Wisely项目,是由美国多个专业医学组织发起的列出过度医疗项目 ...

  7. 044医疗项目-模块四:采购单模块—采购单保存(Dao,Service,Action三层)

    我们上上一篇文章(042医疗项目-模块四:采购单模块-采购单明细添加查询,并且把数据添加到数据库中)做的工作是把数据插入到了数据库,我们这篇文章做的是042医疗项目-模块四:采购单模块-采购单明细添加 ...

  8. 005医疗项目-模块一:用户的查找:1.用户表查询的sql语句

    这是医疗项目的第一个模块:做一个用户的查询,可以根据用户的账号,用户的名称,单位的名称,用户的类型去查询.要求效果如下:

  9. K2 BPM医疗行业EMS解决方案

    EMS,即Event Management System,K2医疗行业EMS解决方案包括四方面的内容. 详情链接:http://www.k2software.cn/zh-hans/ems-soluti ...

随机推荐

  1. InnoTop

    是一个系统活动报告,类似于Linux性能工具,它与Linux的top命令相仿,并参考mytop工具而设计. 它专门用后监控InnoDB性能和MySQL服务器.主要用于监控事务,死锁,外键,查询活动,复 ...

  2. Android Activiy的作用

    在Android应用程序中 ,Activity主要的负责创建窗口的,一个Activicy就是代表一个单独的屏幕,并且是用户唯一可以看到的东西 也就是说Activity就是用来实现和用户交互的,就和.n ...

  3. Android 开发第四天

  4. 正则表达式 和 junit测试

    需要知道一些常规的正则表达式语句,然后可以仿照规则写出一下正则表达式语句.然后是关于junit测试. 知道了一个之前看过的文档,然后有功夫就看一下那个文档就可以,或者后面找时间搜索一下. 正则表达式是 ...

  5. 1.shell之搭建Shell编程环境

    第一次写博客,加点废话,学习linux有一段时间,随着学习的深入发现自己学的不够系统,特别是遇到一些莫名的问题时,我只有各种百度,运气好时能解决掉,差时到现在还没解决,就算解决了还是不清楚是怎么解决的 ...

  6. Spring整合JMS(一)——基于ActiveMQ实现

    1.1     JMS简介 JMS的全称是Java Message Service,即Java消息服务.它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息.把它应用到 ...

  7. Scala闭包

    假如我们定义如下的函数: (x:Int) => x + more 这里我们引入一个自由变量more.它不是所定义函数的参数,而这个变量定义在函数外面,比如: var more =1 那么我们有如 ...

  8. 通过文件读写方式实现Matlab和Modelsim的联合仿真

    虽然Modelsim的功能非常强大,仿真的波形可以以多种形式进行显示,但是当涉及到数字信号处理的算法的仿真验证的时候,则显得有点不足.而进行数字信号处理是Matlab的强项,不但有大量的关于数字信号处 ...

  9. Maven笔记(一)

    1. 坐标 Maven坐标为各种构件引入了秩序,任何一个构件都有必须明确定义自己的坐标,而一组Maven坐标是通过一些元素定义的,它们是groupId, artifactId, version, pa ...

  10. SWFObject2.0

    PROBLEM: using % in the height and width(e.g. 100%) with the SWFObject 2.0 (or 2.1) with dynamic pub ...