AtCoder Beginner Contest 310 E题 NAND repeatedly

E题:NAND repeatedly

标签:动态规划
题意:给定一个长度为 n n n 01 01 01字符串 A i A_i Ai,给定规则: 0 ⊼ 0 = 1 , 0 ⊼ 1 = 1 , 1 ⊼ 0 = 1 , 1 ⊼ 1 = 0 0⊼0=1,0⊼1=1,1⊼0=1,1⊼1=0 00=1,01=1,10=1,11=0

∑ i = 1 n ∑ j = i n f ( i , j ) \sum_{i=1}^n \sum_{j=i}^n f(i,j) i=1nj=inf(i,j) 1 < = i < = j < = n 1<=i<=j<=n 1<=i<=j<=n), f ( i , j ) = { A i ( i = j ) f ( i , j − 1 ) ⊼ A j ( i < j ) f(i,j)=\left\{\begin{matrix} A _ i&(i=j)\\ f(i,j-1)\barwedge A _ j\quad&(i\lt j) \end{matrix}\right. f(i,j)={Aif(i,j1)Aj(i=j)(i<j)
题解:显然我们可以通过 O ( n 2 ) O(n^2) O(n2)时间复杂度完成这道题要求,但是 n < = 1 0 6 n<=10^6 n<=106会超时。
d p [ i ] [ 0 / 1 ] dp[i][0/1] dp[i][0/1]:前 i i i个数字累计 n a n d ( ⊼ ) nand(⊼) nand 0 / 1 0/1 0/1的方案数。分以下两种情况考虑:

  1. 当前数字是 0 0 0 d p [ i ] [ 1 ] dp[i][1] dp[i][1]累计是 1 1 1的情况可以从前面 i − 1 i-1 i1累计是 0 0 0 1 1 1的情况转移过来,因为当前数字是 0 0 0,不管和 0 0 0 1 1 1 n a n d ( ⊼ ) nand(⊼) nand都是 1 1 1 d p [ i ] [ 0 ] dp[i][0] dp[i][0]累计是 0 0 0的情况初始化成 1 1 1
  2. 当前数字是 1 1 1 d p [ i ] [ 1 ] dp[i][1] dp[i][1]累计是 1 1 1的情况只能从前面 i − 1 i-1 i1累计是 0 0 0的情况转移过来,并且计数增加 1 1 1(算上自己本身的),因为 1 ⊼ 1 = 0 1⊼1=0 11=0 d p [ i ] [ 0 ] dp[i][0] dp[i][0]累计是 0 0 0的情况从前面 i − 1 i-1 i1累计是 1 1 1的情况转移过来。

最后把每个位置的 d p [ i ] [ 1 ] dp[i][1] dp[i][1]累加一下即可。
代码

#include <bits/stdc++.h>
using namespace std;const int N = 1e6 + 10;
typedef long long ll;
ll dp[N][2];int main() {ll n, ans = 0;string s;cin >> n >> s;for (int i = 1; i <= n; i++) {if (s[i-1] == '0') {dp[i][1] = dp[i-1][0] + dp[i-1][1];dp[i][0] = 1;} else {dp[i][1] = dp[i-1][0] + 1;dp[i][0] = dp[i-1][1];}ans += dp[i][1];}cout << ans << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/11195.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux进程间通信——匿名管道和命名管道

文章目录 一、引言二、管道的基本原理1、管道的定义与结构2、管道的工作原理 三、匿名管道&#xff08;Anonymous Pipe&#xff09;1、匿名管道的概念2、匿名管道的创建与使用3、匿名管道的读写规则4、匿名管道的特点5、使用匿名管道实现进程池 四、命名管道&#xff08;Named …

MySQL的复合查询

多表查询 MySQL中的多表查询是一个强大的功能&#xff0c;允许你在一个查询中组合来自多个表的数据。这通常通过JOIN语句实现&#xff0c;但也可以使用子查询或集合操作符&#xff08;如UNION&#xff09;。下面我将介绍几种常见的多表查询方式及其用途。 INNER JOIN&#xf…

学习java第六十八天

在AOP术语中&#xff0c;切面的工作被称为通知。通知实际上是程序运行时要通过Spring AOP框架来触发的代码段。 Spring切面可以应用5种类型的通知&#xff1a; 前置通知&#xff08;Before&#xff09;&#xff1a;在目标方法被调用之前调用通知功能&#xff1b; 后置通知&a…

计算机视觉——基于改进UNet图像增强算法实现

1. 引言 在低光照条件下进行成像非常具有挑战性&#xff0c;因为光子计数低且存在噪声。高ISO可以用来增加亮度&#xff0c;但它也会放大噪声。后处理&#xff0c;如缩放或直方图拉伸可以应用&#xff0c;但这并不能解决由于光子计数低导致的低信噪比&#xff08;SNR&#xff…

Oracle如何实现rsa加密和例子

在Oracle数据库中实现RSA加密通常需要使用Java编写的存储过程&#xff0c;因为Oracle自身并不直接支持RSA加密的原生函数。下面是一个基本的例子&#xff0c;说明如何在Oracle中使用Java存储过程来实现RSA加密。 首先&#xff0c;你需要一个Java类&#xff08;比如我们称之为R…

【Spring】@ServerEndpoint 与 Spring 是如何集成的

文章目录 前言表象理解后记更多文章 前言 最近工作需要用到 Websocket 协议。好奇来自 Jdk 包的 ServerEndpoint 是如何与 Spring Boot 集成的&#xff0c;特此记录一下结论。 表象 如果要暴露形如 ws://${ip}:${port}/ws 的服务地址&#xff0c;用于websocket 通信&#xf…

STC8增强型单片机开发——串口调试UART

一、什么是串口 串口是一种在数据通讯中广泛使用的通讯接口&#xff0c;通常我们叫做UART (通用异步收发传输器Universal Asynchronous Receiver/Transmitter)&#xff0c;其具有数据传输速度稳定、可靠性高、适用范围广等优点。在嵌入式系统中&#xff0c;串口常用于与外部设备…

关于Speech processing Universal PERformance Benchmark (SUPERB)基准测试及衍生版本

Speech processing Universal PERformance Benchmark &#xff08;SUPERB&#xff09;是由台湾大学、麻省理工大学&#xff0c;卡耐基梅隆大学和 Meta 公司联合提出的评测数据集&#xff0c;其中包含了13项语音理解任务&#xff0c;旨在全面评估模型在语音处理领域的表现。这些…

基于深度学习神经网络的AI图像PSD去雾系统源码

第一步&#xff1a;PSD介绍 以往的研究主要集中在具有合成模糊图像的训练模型上&#xff0c;当模型用于真实世界的模糊图像时&#xff0c;会导致性能下降。 为了解决上述问题&#xff0c;提高去雾的泛化性能&#xff0c;作者提出了一种Principled Synthetic-to-real Dehazing (…

Windows 跨服务器进行 MYSQL备份脚本

Windows 服务器进行 MYSQL备份的脚本&#xff0c;使用该脚本前&#xff0c;请先测试一下 1、新建一个文本文档 2、将下面代码放入文本文档中&#xff0c;保存退出 echo off :: 命令窗口名 title mysql-bak:: 参数定义 set "Y%date:~,4%" set "m%date:~5,2%&qu…

【计算机网络篇】数据链路层(9)使用集线器的共享式以太网

文章目录 &#x1f6f8;使用同轴电缆的共享总线以太网 &#x1f386;使用集线器的共享式以太网&#x1f95a;集线器的特点 &#x1f354;10BASE-T星型以太网 &#x1f6f8;使用同轴电缆的共享总线以太网 若总线上的某个机械连接点接触不良或断开&#xff0c;则整个网络通信就不…

Nginx part3 创建一个https的网站

目录 HTTPS 公钥和密钥 加密解密方式&#xff1a; https搭建步骤 强调一下 1、准备环境 2、配置文件 3、制作证书 4、进行设置 HTTPS 啥是https&#xff0c;根据百度&#xff1a;HTTPS &#xff08;全称&#xff1a;Hypertext Transfer Protocol Secure&#xff09;&a…

HCIE学习笔记----OSPF详解

OSPF邻居建立的条件 OSPF建立邻居“41”条件总结 4个一致 一个不一致 1.保证接口的前缀 网络信息一致 2.保证ospf区域号和区域类型一致 3.hello包间隔时间和死亡时间一致 4.认证类型和认证认证信息一致 5.路由器的ID不一致 保证唯一性 一-----OSPF 邻接关系建立过程与状…

耦合协调分析模型

耦合协调分析模型&#xff08;Coupling Coordination Analysis Model&#xff09;是一种用于评估两个或多个系统之间相互作用和协调性的数学模型。广泛应用于多个领域&#xff0c;包括但不限于社会科学、经济学、环境科学和工程学。耦合协调分析模型的核心在于量化系统间的耦合…

Android UI:动画:帧动画

文章目录 定义两种创建方式 代码&#xff1a;直接创建对象XML&#xff1a;加载动画文件&#xff0c;创建对象API 类 动画类操作 绑定ImageView启动动画总结 定义 按顺序展示不同的图片 两种创建方式 代码&#xff1a;直接创建对象 XML&#xff1a;加载动画文件&#xff0c;…

本地项目上传到gitee

1. 新建仓库&#xff0c;不要勾选 2. git init git add . git commit -m "test" git remote add origin 【url】 git push --set-upstream origin master

MySQL·索引

目录 索引的意义 索引的理解 为何IO交互要是 Page 理解Page 其他数据结构为何不行&#xff1f; 聚簇索引 VS 非聚簇索引 索引操作 主键索引操作 唯一键索引操作 普通索引的创建 总结 全文索引 索引的意义 索引&#xff1a;提高数据库的性能&#xff0c;索引是物美…

css backdrop-filter 实现背景滤镜

官方给出的定义是&#xff1a;backdrop-filter属性允许您将图形效果&#xff08;如模糊或颜色偏移&#xff09;应用于元素后面的区域。因为它适用于元素后面的所有内容&#xff0c;所以要查看元素或其背景的效果&#xff0c;需要透明或部分透明。 大致分为以下10种&#xff1a…

云计算十三课

centos安装 点击左上角文件 点击新建虚拟机 点击下一步 点击稍后安装操作系统&#xff0c;下一步 选择Linux&#xff08;l&#xff09;下一步 设置虚拟机名称 点击浏览选择安装位置 新建文件夹设置名称不能为中文&#xff0c;点击确定 点击下一步 设置磁盘大小点击下一步…

windows 系统远程连接 redis 服务

一、引言 Redis是一款开源的&#xff0c;内存中的数据结构存储系统&#xff0c;它可以用作数据库、缓存和消息中间件。在开发过程中&#xff0c;我们可能需要从Windows系统远程连接到Redis服务器以进行各种操作。本文将详细介绍如何在Windows系统上远程连接Redis服务。 二、前…