学习博客:戳这里

附本人代码:

 1 #include <bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 const int maxn = 1e5 + 10;
5 const ll mod = 998244353;
6 set<int>nu[maxn], rol[2];
7 int a[maxn];
8 ll dp[maxn][222][3];
9 int main() {
10 int n;
11 scanf("%d", &n);
12 for(int i = 1; i <= n; ++i) {
13 scanf("%lld", a+i);
14 }
15 //处理边界
16 if(a[1] == -1) {
17 for(int i = 1; i <= 200; ++i) {
18 dp[1][i][0] = 1ll;
19 }
20 } else {
21 dp[1][a[1]][0] = 1ll;
22 }
23 for(int i = 2; i <= n; ++i) {
24 ll sum = 0;
25 int len = 200;
26 if(a[i] != -1) len = a[i];
27 for(int j = 1; j <= len; ++j) { // >
28 if(a[i] == -1 || j == a[i])
29 dp[i][j][0] = (dp[i][j][0] + sum) % mod;
30 for(int k = 0; k < 3; ++k) {
31 sum = (sum + dp[i - 1][j][k]) % mod;
32 }
33 }
34 for(int j = 1; j <= len; ++j) { // ==
35 for(int k = 0; k < 3; ++k) {
36 if(a[i] == -1 || j == a[i])
37 dp[i][j][1] = (dp[i][j][1] + dp[i - 1][j][k]) % mod;
38 }
39 }
40 if(i == 2) continue;
41 len = 1;
42 if(a[i] != -1) len = a[i];
43 sum = 0;
44 for(int j = 200; j >= len; --j) { // <
45 if(a[i] == -1 || j == a[i])
46 dp[i][j][2] =(dp[i][j][2] + sum) % mod;
47 for(int k = 1; k < 3; ++k) {
48 sum = (sum + dp[i - 1][j][k]) % mod;
49 }
50 }
51 }
52 ll ans = 0;
53 for(int j = 1; j <= 200; ++j) {
54 for(int k = 1; k < 3; ++k) {
55 if(a[n] == -1 || j == a[n])
56 ans = (ans + dp[n][j][k]) % mod;
57 }
58 }
59 printf("%lld\n", ans);
60 return 0;
61 }

【非原创】codeforces - 1067A Array Without Local Maximums【dp】的更多相关文章

  1. codeforces 1068d Array Without Local Maximums dp

    题目传送门 题目大意:给出一个长度为n的数组,这个数组有的数是给出的,有的数是固定的,且范围都在[1,200]之间,要求这个数组中,每一个数字都小于等于 前后两个数字的最大值,求方案数mod p. 思 ...

  2. 【计数dp】Array Without Local Maximums

    参考博客:[CF1068D]Array Without Local Maximums(计数DP) [题意] n<=1e5 dp[i][j][k]表示当前第i个数字为j,第i-1个数字与第i个之间 ...

  3. 【CF1068D】Array Without Local Maximums(计数DP)

    题意: n<=1e5 思路:卡内存 dp[i][j][k]表示当前第i个数字为j,第i-1个数字与第i个之间大小关系为k的方案数(a[i-1]<a[i],=,>) 转移时使用前缀和和 ...

  4. 「题解报告」CF1067A Array Without Local Maximums

    大佬们的题解都太深奥了,直接把转移方程放出来让其他大佬们感性理解,蒟蒻们很难理解,所以我就写了一篇让像我一样的蒟蒻能看懂的题解 原题传送门 动态规划三部曲:确定状态,转移方程,初始状态和答案. --神 ...

  5. tp5.1 phpspreadsheet- 工具类 导入导出(整合优化,非原创,抄一抄,加了一些自己的东西,)

    phpspreadsheet-工具类 导入导出(整合优化,非原创,抄一抄,加了一些自己的东西)1. composer require phpoffice/phpspreadsheet2. 看最下面的两 ...

  6. Linux下high CPU分析心得【非原创】

    非原创,搬运至此以作笔记, 原地址:http://www.cnitblog.com/houcy/archive/2012/11/28/86801.html 1.用top命令查看哪个进程占用CPU高ga ...

  7. CSS样式命名整理(非原创)

    非原创,具体出自哪里忘了,如果侵害您的利益,请联系我. CSS样式命名整理 页面结构 容器: container/wrap 整体宽度:wrapper 页头:header 内容:content 页面主体 ...

  8. 非原创。使用ajax加载控件

    非原创.来自博客园老赵. public class ViewManager<T> where T : System.Web.UI.UserControl { private System. ...

  9. Java 表达式解析(非原创)

    因项目需要,在网上找来一套表达式解析方法,由于原来的方法太过于零散,不利于移植,现在整理在同一文件内: 文件中包含5个内部类,源码如下: import java.util.ArrayList; imp ...

随机推荐

  1. C++ STL getline()函数

    getline() C++11 <string> 函数原型 //(1) istream& getline (istream& is, string& str, ch ...

  2. ubuntu20.04并添加桌面快捷方式,以安装火狐可浏览器开发版(水狐)为例

    @参考原文 1. 下载linux版源文件 从火狐官网下载linux版的水狐源文件压缩包,@火狐浏览器开发版(水狐)下载地址. 2. 解压下载源文件 将下载的"tar.bz2"文件解 ...

  3. 笔记 | 吴恩达新书《Machine Learning Yearning》

    这本书共112页,内容不多,偏向于工程向,有很多不错的细节,在此记录一下. 0 书籍获取 关注微信公众号"机器学习炼丹术",回复[MLY]获取pdf 1 测试集与训练集的比例 2 ...

  4. 每天学一点 Vue3(一) CND方式的安装以及简单使用

    简介 感觉vue3的新特性很舒服,这样才是写软件的感觉嘛.打算用Vue实现自己的一些想法. Vue3还有几个必备库,比如Vue-Router(负责路由导航).Vuex(状态管理.组件间通信),还有第三 ...

  5. How Interfaces Work in Go

    research!rsc: Go Data Structures: Interfaces https://research.swtch.com/interfaces How Interfaces Wo ...

  6. .net core Wpf中使用cefsharp加载本地html网页,并且cefsharp支持any cpu

    第一步,在程序包管理器安装 cefsharp.wpf 第二步 您必须在项目的第一个 < propertygroup > 中添加 < cefsharpanycpusupport > ...

  7. CF413C

    正文 题意: 给 n 个关卡,每个关卡得分为 ai,有 m 次机会可以选择一 个关卡通过后不得分,而将现有得分翻倍 你可以安排关卡的通过顺序和策略,求最大得分. 分析: 看到这道题首先想到的就是贪心, ...

  8. [一天一个进阶系列] - MyBatis基础篇

    前言:一直以来,很多人都是拿来主义,只停留在会使用的阶段,从未去研究挖掘其原理,剖析本质.现在慢慢探讨一下其内幕,抛砖引玉 一.简介 1)常用的持久化框架 Hibernate:是一款Java世界中最著 ...

  9. SonarQube+jenkins-自动化持续代码扫描

    SonarQube+jenkins-自动化持续代码扫描 1.SonarQube 1.1 SonarQube介绍 1.1.1 SonarQube 工作流程 1. 2 Docker方式安装SonarQub ...

  10. Java——集合框架之Set&HashSet,HashMap,泛型,compareTo

    Set Set接口--数据存放无序,非常简单,主要呈现信息列表 Set接口存储一组唯一.无序的对象 HashSet是Set接口常用的实现类 Set接口不存在get方法 Iterator接口:表示对集合 ...