#dp#洛谷 5774 [JSOI2016]病毒感染
分析
此题肯定不是绿题,哪有这么恶心的dp
试想这样的情形:假设当 JYY 第一次抵达村庄 \(i\),未作救治并直接前往了另一个村庄。那么由于 \(i\) 村庄的人们求生心切,
一旦当 JYY 朝向靠近 \(i\) 村庄的方向前行时,\(i\) 村庄的村民就会以为 JYY 是来救他们了,而产生巨大的期望。
之后倘若 JYY 再次掉头朝着远离 \(i\) 村庄的方向行进,那么 \(i\) 村庄的村民就会因为巨大的失落而产生绝望的情绪。
所以JYY应该是一段一段治愈的,设\(dp[i]\)表示JYY治愈完前\(i\)个村庄的最少不幸人数
\(dp[i]=\min\{dp[j]+???(calc(j+1,i))+(s[n]-s[i])*(???)\}\),这样\(O(n^2)\)的dp明显还不够,需要预处理一些东西,
首先这一段应该是从\(j+1\)到\(i\)再到\(j+1\)再到\(i\),先考虑后面的天数就是\(4*(i-j-1)+1+1\),
也就是往返三遍再治愈当中所有村民总计4遍(治愈要加1),还要加上从\(j\)到\(j+1\)的天数
考虑中间\(calc\)的部分,\(calc(j,i)\)可以选择治愈\(j\)先(\(j+1\sim i\)都拖延1天)或者先治愈\(j+1\sim i\)再回来治愈\(j\),
那也就是
\]
正序枚举\(i\)倒序枚举\(j\)就可以做到\(O(n^2)\)
综上所述
\]
代码
#include <cstdio>
#include <cctype>
#include <cstring>
#define rr register
using namespace std;
const int N=3011; typedef long long lll;
lll a[N],s[N],dp[N],f[N][N],n;
inline signed iut(){
rr int ans=0; rr char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans;
}
inline lll calc(int l,int r){return s[r]-s[l-1];}
inline lll min(lll a,lll b){return a<b?a:b;}
signed main(){
n=iut(),memset(dp,42,sizeof(dp)),dp[0]=0;
for (rr int i=1;i<=n;++i)
s[i]=s[i-1]+(a[i]=iut());
for (rr int i=1;i<=n;++i){
f[i][i]=0;
for (rr int j=i-1;j;--j)
f[j][i]=f[j+1][i]+calc(j+1,i)+min(3*(i-j)*a[j],calc(j+1,i));
}
for (rr int i=1;i<=n;++i)
for (rr int j=0;j<i;++j)
dp[i]=min(dp[i],dp[j]+f[j+1][i]+((i-j-1)<<2|2)*calc(i+1,n));
return !printf("%lld",dp[n]);
}
#dp#洛谷 5774 [JSOI2016]病毒感染的更多相关文章
- Bzoj4753/洛谷P4432 [JSOI2016]最佳团体(0/1分数规划+树形DP)
题面 Bzoj 洛谷 题解 这种求比值最大就是\(0/1\)分数规划的一般模型. 这里用二分法来求解最大比值,接着考虑如何\(check\),这里很明显可以想到用树形背包\(check\),但是时间复 ...
- 树形DP 洛谷P2014 选课
洛谷P2014 选课 题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习.现在有N门功课,每门 ...
- 洛谷$P4322\ [JSOI2016]$最佳团体 二分+$dp$
正解:二分+$dp$ 解题报告: 传送门$QwQ$ 这题长得好套路嗷,,,就一看就看出来是个$01$分数规划+树形$dp$嘛$QwQ$. 考虑现在二分的值为$mid$,若$mid\leq as$,则有 ...
- 区间DP 洛谷P2858牛奶零食
题目链接 题意:你有n个货物从1-n依次排列,每天可以从两侧选一个出来卖,卖的价格是当天的天数乘该货物的初始价格,问这批货物卖完的最大价格 输入:第一行n,之后是n个货物的初始价值 这道题不能用贪心做 ...
- P1279 字串距离 dp 洛谷
题目描述 设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为”abcbcd”,则字符串“abcb□cd”,“□a□bcbcd□”和“abcb□cd□”都是X ...
- dp 洛谷P1977 出租车拼车 线性dp
题目背景 话说小 x 有一次去参加比赛,虽然学校离比赛地点不太远,但小 x 还是想坐 出租车去.大学城的出租车总是比较另类,有“拼车”一说,也就是说,你一个人 坐车去,还是一堆人一起,总共需要支付的钱 ...
- 经典DP 洛谷p1880 石子合并
https://www.luogu.org/problemnew/show/P1880 题目 题目描述 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新 ...
- [DP]洛谷P1115最大子段和
题目来源 https://www.luogu.org/problemnew/show/P1115 题目描述 给出一段序列,选出其中连续且非空的一段使得这段和最大. 输入输出格式 输入格式: 第一行是一 ...
- 尼克的任务 dp 洛谷1280
蒟蒻表示老久没看过dp题目了,,挺水的一道dp题目都没想出来,,, 首先设dp[i]表示从开始到i时间的最大空闲时间,用vector to[x] 表示从x点开始的任务结束时间,cnt[x]表示从x开始 ...
- dp——洛谷 P1541 乌龟棋 —— by hyl天梦
题目:(转自 https://www.luogu.com.cn/problem/P1541) 题目描述 乌龟棋的棋盘是一行NN个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第NN格是 ...
随机推荐
- Dubbo使用APISIX作为网关
为什么使用网关 Dubbo服务本身没有暴露HTTP接口,客户端(如:Web,APP)无法直接调用其提供的方法. 而APISIX可以通过dubbo-proxy插件为Dubbo服务提供外部访问的HTTP接 ...
- Qt三方库开发技术:QXlsx介绍、编译和使用
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- flask操作mongodb
一个简单的注册登录 from pymongo import MongoClient MC = MongoClient('127.0.0.1', 27017) MongoDB = MC['s2'] #创 ...
- 【Azure 环境】如何解决Principal 2330xxxxxxxxxxxxxxxxxxxx31efc5 does not exist in the directory xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx问题
问题描述 在使用 Key Vault 和 Azure CLI 管理存储帐户密钥的官方文档中,其中有一步是"向 Key Vault 授予对你的存储帐户的访问权限", 其中CLI命令中 ...
- CompletableFuture Demo
CompletableFuture Demo 题目:有一个数据库client,从数据库中取数据A和数据B,然后求和.请使用并发的知识,尽快的完成操作. /** * {@code @author:} k ...
- TLS原理与实践(三)tls1.3
主页 个人微信公众号:密码应用技术实战 个人博客园首页:https://www.cnblogs.com/informatics/ 引言 tls1.2作为主流的网路安全协议,被广泛应用,但tls1.2仍 ...
- Lucene轻量级搜索引擎,真的太强了!!!Solr 和 ES 都是基于它
一.基础知识 1.Lucene 是什么 Lucene 是一个本地全文搜索引擎,Solr 和 ElasticSearch 都是基于 Lucene 的封装 Lucene 适合那种轻量级的全文搜索,我就是服 ...
- Jetpack Compose(3) —— 状态管理
上一篇文章拿 TextField 组件举例时,提到了 State,即状态.本篇文章,即讲解 State 的相关改概念. 一.什么是状态 与其它声明式 UI 框架一样,Compose 的职责非常单纯,仅 ...
- Win10使用Dism++离线安装.Net3.5
.Net3.5的安装包在Win10已经不能使用了,在线安装.Net3.5会很卡(跟网络无关),最好是使用Dism++提取Win10系统镜像文件离线安装. 打开Dism++软件,按照如下步骤操作: 选择 ...
- FastWiki v0.1.0发布!新增超多功能
FastWiki 发布 v0.1.0 https://github.com/239573049/fast-wiki/releases/tag/v0.1.0 更新日志 兼容OpenAI接口格式 删除Bl ...