D - Ears

思路:

s:起点           t:终点           l:左端点           r:右端点

以上称为关键点

dp[i][j]表示到位置 i 为止,已经经过前 j 个关键点的最小花费

转移方程看代码:

#pragma GCC optimize(2)
#pragma GCC optimize(3)
#pragma GCC optimize(4)
#include<bits/stdc++.h>
using namespace std;
#define y1 y11
#define fi first
#define se second
#define pi acos(-1.0)
#define LL long long
//#define mp make_pair
#define pb push_back
#define ls rt<<1, l, m
#define rs rt<<1|1, m+1, r
#define ULL unsigned LL
#define pll pair<LL, LL>
#define pli pair<LL, int>
#define pii pair<int, int>
#define piii pair<pii, int>
#define pdd pair<double, double>
#define mem(a, b) memset(a, b, sizeof(a))
#define debug(x) cerr << #x << " = " << x << "\n";
#define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
//headconst int N = 2e5 + 10;
LL dp[N][5];
int a[N];
int main() {int n;scanf("%d", &n);for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);    for (int i = 1; i <= n; i++) {dp[i][0] = dp[i-1][0] + a[i];for (int j = 1; j < 5; j++) {dp[i][j] = dp[i-1][j];for (int k = 0; k < j; k++) dp[i][j] = min(dp[i][j], dp[i-1][k]);}dp[i][1] += a[i] == 0 ? 2 : (a[i]%2 != 0);dp[i][2] += a[i]%2 != 1;dp[i][3] += a[i] == 0 ? 2 : (a[i]%2 != 0);dp[i][4] += a[i];        }LL ans = dp[n][0];for (int i = 1; i < 5; i++) ans = min(ans, dp[n][i]);printf("%lld\n", ans);return 0;
}

转载于:https://www.cnblogs.com/widsom/p/10359968.html

Yahoo Programming Contest 2019 D - Ears相关推荐

  1. Yahoo Programming Contest 2019.D.Ears(DP)

    题目链接 菜爆了啊QAQ 记起点为\(S\),终点为\(T\),走过的最靠左的点是\(L\),最靠右的点是\(R\). 那么坐标轴被分成了五段: \(0\sim L-1\):经过\(0\)次: \(L ...

  2. Atcoder Yahoo Programming Contest 2019 简要题解

    A-C 直接放代码吧. A int n,k; int main() {n=read();k=read();puts(k<=(n+1)/2?"YES":"NO&quo ...

  3. Yahoo Programming Contest 2019 F - Pass

    传送门 题目大意 给定一个只包含012序列,0表示这个人有2个红球,1表示一个红球一个蓝球,2表示两个蓝球.进行n*2次游戏,每次游戏所有有球的人选择一个球递给前一个人,第一个人把球放到一个序列中,' ...

  4. Yahoo Programming Contest 2019 自闭记

    A:签到. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> ...

  5. Yahoo Programming Contest 2019 E - Odd Subrectangles

    E - Odd Subrectangles 链接 题意: n*m的01矩阵,选出一些行和一些列,计算多少个选的方式,使得相交的点的权值和,是奇数,n,m<=300. 分析: 考虑选出了行,有多少 ...

  6. Yahoo Programming Contest 2019 D-Ears

    传送门 题目大意 分析 我们不难整个线段可以被划分为5段 我们设路径到达的最左的地方是L,最右的地方是R 则这五段分别是0~L,L+1~S,S+1~T,T+1~R,R+1~N 最外面的两端不经过,所以 ...

  7. [Atcoder Yahoo Contest 2019]D.Ears(动态规划)

    Score:600600600 points 题面 传送门 翻译有时间再补- 题解 体验感极差,考试的时候手残把1打成了2Debug了半个小时,害的F题都没做. 先将题目转换一下:给你一条链,顺次连接 ...

  8. The 10th Shandong Provincial Collegiate Programming Contest 2019山东省赛游记+解题报告

    比赛结束了几天...这篇博客其实比完就想写了...但是想等补完可做题顺便po上题解... 5.10晚的动车到了济南,没带外套有点凉.酒店还不错. 5.11早上去报道,济南大学好大啊...感觉走了一个世 ...

  9. NIKKEI Programming Contest 2019 翻车记

    A:签到. #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> ...

最新文章

  1. 【数学 技巧】2.14计数
  2. 在OR项目中使用火焰图
  3. hive执行drop卡死一例:java.lang.NoSuchMethodError: org.apache.commons.lang3.StringUtils.isAnyBlank
  4. 【多元域除法】多项式除法电路原理及MATLAB详解
  5. 4982亿背后的前端技术—2020天猫双11前端体系大揭秘
  6. 一般二叉树的顺序存储Java_100-顺序存储二叉树思路图解
  7. [转载] Java 将字符串首字母转为大写 - 利用ASCII码偏移
  8. Linux中shell运行方式,linux脚本中父shell与子shell 执行的几种方式
  9. 韩国有多大?相当于中国哪里?
  10. 计步 android 源码,android版简易计步器源码
  11. MATLAB2022a/Simulink + STM32F407 Discovery Kit教程1
  12. html调色板快捷键,CSS color设置与调色板
  13. 辨析:方差 和 均方误差 的联系和区别
  14. 猫哥教你写爬虫 032--爬虫初体验-BeautifulSoup
  15. 算法设计 (分治法应用实验报告)基于分治法的合并排序、快速排序、最近对问题
  16. CSS3 filter(滤镜) 百度汶川地震页面的使用
  17. Python编程:从入门到实践-第七章:用户输入和while循环(语法)
  18. 冰岛警方选中IDEMIA为其提供新的出入境系统
  19. 理论联系实践:相机标定之世界坐标系的定义
  20. linux官方桌面大图,Ubuntu 19.04官方壁纸揭晓

热门文章

  1. 计算机启动显示不正确的分区表,每次开机提示invalid partition table怎么解决?
  2. Lichee(三) Android4.0的目标产品目录与Lichee的纽带---extract-bsp
  3. 基于最小错误率的贝叶斯决策实现手写数字识别
  4. frequentism-and-bayesianism-chs-ii
  5. 中国阀门喷射式喷墨打印机市场深度研究分析报告
  6. 8个管理学故事[转自和讯博客]
  7. iOS编程——Swift实现常见的递归算法1
  8. 用python玩转数据慕课答案第三周_大学慕课用Python玩转数据章节测验答案
  9. 电磁学中的左手定则和右手定则
  10. matlab21世纪论坛,compressive sensing 压缩感知(转) 21世纪最火的研究方向