当前位置: 首页 > news >正文

A. Directional Increase -前缀和与差分理解 + 思维

题面

分析

观察指针移动的性质,可以发现每一段都是从起点走到终点,在原路返回,这样每一段也就表示,在起点处加一,在终点处减一,形成了很明显的差分结构,思考能否构造出a数组的关键就是他的前缀和数组b的b[n]必须等于0,并且每一个 b i b_i bi都不能小于0,因为起点大于0,终点小于0,所有数都应该是大于等于0的,在某一个下标一旦前缀和数组元素等于0,代表开始原路返回,这是走过最长的一段,那么后面所有的前缀和元素都必须是0.

代码

#include <bits/stdc++.h>using namespace std;
using ll = long long;void solve() {int n;cin >> n;vector<ll> a(n + 1);for(int i = 1; i <= n; i ++) {cin >> a[i];a[i] += a[i - 1];}if(a[n] != 0) {cout << "No\n";return ;}int flag = 0;for(int i = 1; i <= n; i ++) {if(a[i] < 0) {flag = 1;break;}}int cnt = 0;for(int i = 1; i <= n; i ++) {if(a[i] == 0) cnt = 1;else {if(cnt == 1) {flag = 1;break;}}}if(flag == 1) cout << "No\n";else cout << "Yes\n";
}int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int T;cin >> T;while(T --) {solve();}
}
http://www.lryc.cn/news/213197.html

相关文章:

  • openpnp - java调试环境 - 最好只保留一套jdk环境
  • AI技术的钓鱼邮件有多强
  • vue/react项目刷新页面出现404报错的原因及解决办法
  • 黑客技术(网络安全)——如何高效学习
  • 53.MongoDB分片集群高级集群架构详解
  • Servlet 上下文参数
  • ChatGPT正在测试原生文件分析功能,DALL·E 3能P图啦!
  • 三相马达的电机故障维护
  • 【易售小程序项目】后端部署、Uniapp项目Web部署
  • prometheus监控kafka
  • 【STL】:list用法详解
  • SQL Wildcards 通配符
  • 入门必学 | R语言for循环的常规应用
  • metaRTC集成flutter ui demo编译指南
  • int怎么转成QString?
  • JavaScript进阶(二十九): 走近 es6 之 new.target
  • JVM虚拟机:堆结构的逻辑分区
  • RabbitMQ学习02
  • android中的Package安装、卸载、更新替换流程
  • 思维训练第三课 反意疑问句
  • nvm安装步骤
  • 关于比较级(内含名词比较级)
  • 【算法|动态规划 | 线性dp | 最长上升子序列模型No.1】AcWing1017.怪盗基德的滑翔翼 AcWing1014.登山
  • 2023年道路运输企业主要负责人证模拟考试题库及道路运输企业主要负责人理论考试试题
  • Linux学习第26天:异步通知驱动开发: 主动
  • SpringBoot的核心配置:YAML概述、基础语法;JSR303数据校验;多环境切换
  • 把Qt6.2.4内置的标签打印了一遍
  • element-ui 表单校验・大全
  • 搭建高性能分布式存储-minio
  • leetCode 137. 只出现一次的数字 II(拓展篇) + 模5加法器 + 真值表(数字电路)