学习博客:戳这里

附本人代码:

 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. [WPF] 在单元测试中使用 Prism 的 EventAggregator,订阅到 ThreadOption.UIThread 会报错

    1. 问题 [TestClass] public class UnitTest1 { [TestMethod] public void TestMethod1() { ContainerLocator ...

  2. SAP 修改表和表中数据

    平时修改表中数据的方式有一下几种: 1.一般就是通过SE11或者是SE16进去,找到那条记录,然后将模式变成EDIT,然后修改保存. 2.通过SQL语句在程序中实现数据库表的修改操作 3.通过SE16 ...

  3. Dubbo的设计理念原来就藏在这三张图中

    Dubbo在众多的微服务框架中脱颖而出,占据RPC服务框架的半壁江山,非常具有普适性,熟练掌握 Dubbo的应用技巧后深刻理解其内部实现原理,让大家能更好的掌控工作,助力职场,特别能让大家在面试中脱颖 ...

  4. 面试常问的ArrayQueue底层实现

    public class ArrayQueue<T> extends AbstractList<T>{ //定义必要的属性,容量.数组.头指针.尾指针 private int ...

  5. java虚拟机——轻松搞懂jvm

    一.JVM体系结构概述 JVM位置 JVM体系结构 1.1 类加载器 ClassLoader   类加载器(ClassLoader)负责加载class文件,class文件在文件开头有特定的文件标示,并 ...

  6. Zookeeper C API的学习 以及样例 很赞

    https://www.cnblogs.com/haippy/archive/2013/02/21/2920280.html

  7. XCTF-phoenix100

    前期工作 查壳无壳,界面是普通的输入flag点击验证 逆向分析 文件结构只有一个MainActively,查看MainActively代码 public class MainActivity exte ...

  8. 学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用

    学习SpringBoot,整合全网各种优秀资源,SpringBoot基础,中间件,优质项目,博客资源等,仅供个人学习SpringBoot使用 一.SpringBoot系列教程 二.SpringBoot ...

  9. ScalikeJDBC,操作mysql数据,API

    ScalikeJDBC,操作mysql数据,API 一.构建maven项目,添加pom.xml依赖 二.resource文件下创建application.conf文件,并配置以下内容 三.操作mysq ...

  10. redis学习教程三《发送订阅、事务、连接》

    redis学习教程三<发送订阅.事务.连接>  一:发送订阅      Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息.Redi ...