E - Takahashi and Animals(动态规划)

简介: 笔记

题目描述


30.png


样例


Sample Input 1


5

2 5 3 2 5


Sample Output 1


7


Sample Input 2


20

29 27 79 27 30 4 93 89 44 88 70 75 96 3 78 39 97 12 53 62


Sample Output 2


426


数据范围


31.png


代码


int f[N][2];
int g[N][2];
// f[i][0]: 当前i没有饱,i之前所需要的最小值
// f[i][1]: 当前i饱了,i之前所需要的最小值
// f[i][0] = f[i - 1][1]
// f[i][1] = min(f[i - 1][0] + a[i - 1],  f[i - 1][1], a[i]);  ×
// 向后转移,你会发现,前面饱了的,会带i饱
// 不好转移?
// f[i][0]: 当前不是自己喂饱,前i的总最小值
// f[i][1]: 当前是自己喂饱,前i的总最小值
// f[i][0] = f[i - 1][1];
// f[i][1] = min(f[i - 1][0], f[i - 1][1]) + a[i];
int a[N];
void solve() {
  int n; cin >> n;
  for (int i = 1; i <= n; i++) cin >> a[i];
  f[1][0] = 2e9, f[1][1] = a[1];
  for (int i = 2; i <= n; i++) {
    f[i][0] = f[i - 1][1];
    f[i][1] = min(f[i - 1][0], f[i - 1][1]) + a[i];
  }
  g[1][0] = 2e9, g[1][1] = a[2];
  for (int i = 2; i <= n; i++) {
    g[i][0] = g[i - 1][1];
    g[i][1] = min(g[i - 1][0], g[i - 1][1]) + a[i % n + 1];
  }
  cout << min(min(f[n][0], f[n][1]), min(g[n][0], g[n][1])) << endl;
}
signed main() {
  IOS int _ = 1;
  // cin >> _;
  while(_--) { solve(); }
  return 0;
}
相关文章
|
存储 NoSQL Linux
Linux下安装MongoDB
Linux下安装MongoDB
274 0
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers
【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers
928 1
|
JavaScript 前端开发 安全
在众多的测试工具中,Cypress以其强大的端到端测试能力和与TypeScript的完美结合,成为了前端开发者的首选
【6月更文挑战第11天】Cypress结合TypeScript,打造前端测试新体验。TypeScript增强代码可读性和稳定性,Cypress提供强大端到端测试,二者结合提升测试准确性和可靠性。通过类型定义、自定义命令和断言,优化测试代码;Cypress模拟真实用户操作、时间旅行功能及内置调试工具,确保应用功能性能。推荐前端开发者使用TypeScript+Cypress进行端到端测试。
188 2
|
11月前
|
存储 人工智能 Java
Neo4j从入门到精通:打造高效知识图谱数据库 | AI应用开发
在大数据和人工智能时代,知识图谱作为一种高效的数据表示和查询方式,逐渐受到广泛关注。本文从入门到精通,详细介绍知识图谱及其存储工具Neo4j,涵盖知识图谱的介绍、Neo4j的特点、安装步骤、使用方法(创建、查询)及Cypher查询语言的详细讲解。通过本文,读者将全面了解如何利用Neo4j处理复杂关系数据。【10月更文挑战第14天】
1322 6
|
Python
Python软件包管理工具pip实战篇
详细介绍了Python软件包管理工具pip的使用方法,包括安装、搜索、卸载软件包,修改软件源,导出和安装依赖列表,以及查看pip版本和配置信息等操作,并提供了相关命令示例。
299 0
Python软件包管理工具pip实战篇
|
人工智能 自然语言处理 API
利用Python调用KimiGPT API接口
Kimi作为国内目前广受欢迎的AI工具,因其出色的性能和智能功能,迅速赢得了大量用户的青睐。随着用户量的激增,系统在高峰时段可能会面临响应压力。正是借助这一热潮,Kimi团队适时推出了其API服务,使用户和开发者能够更加灵活和深入地集成和使用Kimi的智能功能。
|
算法 数据可视化
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现-1
r语言中对LASSO回归,Ridge岭回归和弹性网络Elastic Net模型实现
|
存储 监控 安全
《物联网技术》课程笔记——第一章 物联网概述
《物联网技术》课程笔记——第一章 物联网概述
|
Linux
Linux下使用Wireshark抓包教程
在实际开发中,涉及网络传输的环节是非常多的。在这些过程中,我们经常有查看被传输的数据信息的需求,因此,抓包工具应运而生。Wireshark便是一款非常有名的抓包及分析软件,具有强大的协议解析能力。本文将介绍如何在Linux系统中安装Wireshark抓包工具,以CentOS7为例。
852 0
Linux下使用Wireshark抓包教程
|
设计模式 缓存 JavaScript

热门文章

最新文章