A.Single Push
题目:简单推动##
题意:你被给予两个相同长度为n的数组a[1...n]和b[1...n]
目的是进行一个推入操作,你会选择l,r,k三个数字满足1 <= l <= r <= n 还有 k > 0,
你会添加k到al,al + 1,...,ar的每个数字上
例如:a = [3, 7, 1, 4, 1, 2],选择l = 3, r = 5, k = 2,那么数组a会变成
a = [3, 7, 3, 6, 3, 2]
你可以最多进行一次操作,使得a变成b,即a和b里面的元素每个都相同
输出"YES"和"NO"
分析:要使得两个数组元素相同,可以先求出两个数组每个元素相减的值,查看这些正值是否是连续的,且只有一段连续的正值,再输出YES和NO
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
int T;
int n;
const int N = 100005;
int a[N];
int b[N];
int res[N];
int main()
{
cin >> T;
while (T--)
{
scanf("%d", &n);
int m;
for (int i = 1; i <= n; ++i)
{
scanf("%d", &m);
a[i] = m;
}
for (int i = 1; i <= n; ++i)
{
scanf("%d", &m);
b[i] = m;
}
int flag = 1;
//查看是否连续并且是否一次
for (int i = 1; i <= n; ++i)
{
res[i] = b[i] - a[i];
}
int cnt = 0;//段
int p = 0;//有负数
for (int i = 1; i <= n; ++i)
{
if (res[i] > 0)
{
while (res[i] > 0 && res[i + 1] == res[i])
{
++i;
}
++cnt;
if (cnt == 2)
{
flag = 0;
break;
}
}
else if (res[i] < 0)
{
flag = 0;
break;
}
}
if (flag == 0)
{
puts("NO");
}
else{
puts("YES");
}
}
return 0;
}
A.Single Push的更多相关文章
- 【CF1253A】Single Push【模拟】
题意:给你两个数组a,b,求是否存在操作使得a变成b,操作为选取一段子区间[l,r],选一个正整数k,使得ai+=k,i∈[l,r],只能操作一次 题解:模拟即可 #include<iostre ...
- Codeforces Round #600 (Div. 2) A. Single Push
#include<iostream> #include<cstdio> #include<cstdlib> using namespace std; int T,n ...
- HDU 4930 Fighting the Landlords --多Trick,较复杂模拟
题意:两个人A和B在打牌,只有题目给出的几种牌能出若A第一次出牌B压不住或者A一次就把牌出完了,那么A赢,输出Yes,否则若A牌没出完而且被B压住了,那么A输,输出No. 解法:知道规则,看清题目,搞 ...
- highgui.h备查 分类: C/C++ OpenCV 2014-11-08 18:11 292人阅读 评论(0) 收藏
/*M/////////////////////////////////////////////////////////////////////////////////////// // // IMP ...
- Codeforces Round #600 (Div. 2)
传送门 A. Single Push 直接乱搞即可. Code /* * Author: heyuhhh * Created Time: 2019/11/16 22:36:20 */ #include ...
- CF Round #600 (Div 2) 解题报告(A~E)
CF Round #600 (Div 2) 解题报告(A~E) A:Single Push 采用差分的思想,让\(b-a=c\),然后观察\(c\)序列是不是一个满足要求的序列 #include< ...
- Add Digits, Maximum Depth of BinaryTree, Search for a Range, Single Number,Find the Difference
最近做的题记录下. 258. Add Digits Given a non-negative integer num, repeatedly add all its digits until the ...
- git push --help
git-push(1) Manual Page NAME git-push - Update remote refs along with associated objects SYNOPSIS gi ...
- 技巧题---Single boy
Description Today is Christmas day. There are n single boys standing in a line. They are numbered fo ...
随机推荐
- map集合中哪些是线程安全的
为什么HashMap是线程不安全的 总说 HashMap 是线程不安全的,不安全的,不安全的,那么到底为什么它是线程不安全的呢?要回答这个问题就要先来简单了解一下 HashMap 源码中的使用的存储结 ...
- [UWP]使用Win2D的BorderEffect实现图片的平铺功能
1. WPF有,而UWP没有的图片平铺功能 在WPF中只要将ImageSource的TileMode属性设置为Tile即可实现图片的平铺,具体可见WPF的这些文档: ImageBrush 类 (Sys ...
- Docker学习-Kubernetes - 集群部署
Docker学习 Docker学习-VMware Workstation 本地多台虚拟机互通,主机网络互通搭建 Docker学习-Docker搭建Consul集群 Docker学习-简单的私有Dock ...
- linux系统LAMP环境部署
一.安装虚拟机 二.安装CentOS7 注意:以下安装,用的root权限. 三.安装Apache 1.安装 yum -y install httpd 2.开启apache服务 systemctl st ...
- 【Linux】Debian 下安装 Apache,MySQL,PHP
首先,对你的源进行更新: $ sudo apt-get update 第一步--安装 Apache Apache 是一个开源软件,它目前运行在全球超过 50% 的服务器上,是 LAMP(Linux,A ...
- nyoj 52-无聊的小明 (模拟, SET)
52-无聊的小明 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:1 submit:3 题目描述: 这天小明十分无聊,没有事做,但不甘于无 ...
- 搭建Redis三主三从集群
Redis三主三从集群规划 10.0.128.19 使用端口 7000 7001 10.0.128.22 使用端口 7002 7003 10.0.128.23 使用端口 7004 7 ...
- 力扣(LeetCode)从不订购的客户-数据库题 个人题解
SQL架构 某网站包含两个表,Customers 表和 Orders 表.编写一个 SQL 查询,找出所有从不订购任何东西的客户. Customers 表: +----+-------+ | Id | ...
- 用户环境变量 shell变量 别名
常见用户环境变量: 环境变量 说明 LANG HOME LOGNAME 用户名 PATH SHELL PWD 查看环境变量用:env或者echo $LANG 设置用户环境变量:ex ...
- 20191114-2 Beta事后诸葛亮会议
此作业要求:http://edu.cnblogs.com/campus/nenu/2019fall/homework/10005 组名:扛把子 组长:孙晓宇 组员:宋晓丽.梁梦瑶.韩昊.刘信鹏 扛把子 ...