题面

传送门

分析

一开始考虑贪心和DP,发现不行

考虑差分:

设d[i]=c[i+1]-c[i] (i<n)

那么一次操作会如何影响差分数组呢?

\(c[i]'=c[i+1]+c[i-1]-c[i]\)

\(d'[i-1]=c[i]'-c[i-1]=c[i+1]-c[i]=d[i]\)

\(d'[i]=c[i]-c[i-1]=d[i-1]\)

我们发现操作只是改变了差分数组中不同值的位置

因此,我们只要求出c,t对应的差分数组,并比较它们是否相同即可

注意由于c[1]和c[n]不能变,所以要判断c[1]和t[1],c[n]和t[n]是否相等

代码

#include<iostream>
#include<cstdio>
#include<algorithm>
#define maxn 100005
using namespace std;
int n;
int a[maxn];
int b[maxn];
int da[maxn];
int db[maxn];
int is_eqal(int *a,int *b,int sz){
sort(a+1,a+1+sz);
sort(b+1,b+1+sz);
for(int i=1;i<=sz;i++){
if(a[i]!=b[i]) return 0;
}
return 1;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
for(int i=1;i<=n;i++){
scanf("%d",&b[i]);
}
for(int i=1;i<n;i++){
da[i]=a[i+1]-a[i];
}
for(int i=1;i<n;i++){
db[i]=b[i+1]-b[i];
}
if(a[1]!=b[1]||a[n]!=b[n]){
printf("No\n");
}else{
if(is_eqal(da,db,n-1)) printf("Yes\n");
else printf("No\n");
}
}

Codeforces 1110E (差分)的更多相关文章

  1. Greg and Array CodeForces 296C 差分数组

    Greg and Array CodeForces 296C 差分数组 题意 是说有n个数,m种操作,这m种操作就是让一段区间内的数增加或则减少,然后有k种控制,这k种控制是说让m种操作中的一段区域内 ...

  2. Magic Stones CodeForces - 1110E (思维+差分)

    E. Magic Stones time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  3. Codeforces.1110E.Magic Stones(思路 差分)

    题目链接 听dalao说很nb,做做看(然而不小心知道题解了). \(Description\) 给定长为\(n\)的序列\(A_i\)和\(B_i\).你可以进行任意多次操作,每次操作任选一个\(i ...

  4. 【Codeforces 1110E】Magic Stones

    Codeforces 1110 E 题意:给定两个数组,从第一个数组开始,每次可以挑选一个数,把它变化成左右两数之和减去原来的数,问是否可以将第一个数组转化成第二个. 思路: 结论:两个数组可以互相转 ...

  5. Codeforces 1119D(差分)

    题面 传送门 分析 先考虑\(O(nk)\)的做法,先按s从小到大排序,每个串的数显然形成了n个连续区间\([s_i+l,s_i+r]\),且这些区间的左端点升序排列,然后把区间合并就可以知道有多少个 ...

  6. G - Greg and Array CodeForces - 296C 差分+线段树

    题目大意:输入n,m,k.n个数,m个区间更新标记为1~m.n次操作,每次操作有两个数x,y表示执行第x~y个区间更新. 题解:通过差分来表示某个区间更新操作执行的次数.然后用线段树来更新区间. #i ...

  7. Codeforces Gym 100015G Guessing Game 差分约束

    Guessing Game 题目连接: http://codeforces.com/gym/100015/attachments Description Jaehyun has two lists o ...

  8. codeforces 1017C - Cloud Computing 权值线段树 差分 贪心

    https://codeforces.com/problemset/problem/1070/C 题意: 有很多活动,每个活动可以在天数为$[l,r]$时,提供$C$个价格为$P$的商品 现在从第一天 ...

  9. Codeforces Round #439 (Div. 2) Problem E (Codeforces 869E) - 暴力 - 随机化 - 二维树状数组 - 差分

    Adieu l'ami. Koyomi is helping Oshino, an acquaintance of his, to take care of an open space around ...

随机推荐

  1. 轻便的gb28181协议中的rtp+ps格式视频流的封装和解析

    streams 轻便的gb28181协议中的rtp+ps格式视频流的封装和解析 packet packet实现ps的相关封装和解析, example/enc 通过joy4来读本地视频文件,然后调用Rt ...

  2. linux man命令后面各种括号的意义

    圆括号 我们经常会看到 在说一个对象的man page 的时候,会有这样的格式: mmap(2) shm_open(3) 这个后面的数字是什么意思呢,通过 man man 命令就可以知道,这个是数字是 ...

  3. vue2.0 之 深入响应式原理

    实例demo<div id="app"> <span>{{a}}</span> <input type="text" ...

  4. js 鼠标效果

    一. 鼠标悬停效果和离开效果 鼠标效果和v-if 配合使用效果很好 <a class="all btn" href="#" v-on:mouseover= ...

  5. Java第二阶段笔记

    抽象类不能创建对象 抽象类可以有构造方法成员变量成员方法静态方法final修饰的方法(只能被子类调用,不能被重写)抽象方法(可以有0个或多个) 抽象方法不能有方法体,只能以:结尾,只能存在于抽象方法中 ...

  6. Spring---Spring Integration

    1.概述 1.1.Spring Integration  提供了  基于spring  的 EIP(Enterprise Integration Patterns,企业集成模式)的实现: 1.2.Sp ...

  7. Android解析编译之后的所有文件(so,dex,xml,arsc)格式

    我们在之前一篇一篇介绍了如何解析Android中编译之后的所有文件格式,所有的工作都完成了,这里我们就来做个总结,我们为什么要做这些工作: 第一篇:解析so文件格式 点击进入 这里我们解析so文件,主 ...

  8. 20180805-Java ByteArrayInputStream类

    ByteArrayInputStream bArray = new ByteArrayInputStream(byte [] a); ByteArrayInputStream bArray = new ...

  9. Winner

    Winner 南昌邀请赛 暴力模拟 #include<bits/stdc++.h> using namespace std; struct Nod { int i; int a,b,c; ...

  10. (转)Window 中杀死指定端口 cmd 命令行 taskkill

    Windows平台   两步方法 :  1 查询端口占用,2 强行杀死进程 netstat -aon|findstr "8080" taskkill /pid 4136-t -f ...