【链接】 我是链接,点我呀:)

【题意】

你可以把c[i]改成c[i+1]+c[i-1]-c[i]
(2

【题解】

```cpp
d[i] = c[i+1]-c[i]; (1 change c[i]

c[i]' = c[i+1]+c[i-1]-c[i];

d[i-1] = c[i]'-c[i-1];
= c[i+1]+c[i-1]-c[i]-c[i-1] == c[i+1]-c[i] = d[i];

d[i] = c[i+1]-c[i]'
= c[i+1]-c[i+1]-c[i-1]+c[i]
= c[i] - c[i-1];
= d[i-1];
也就是说对2..n-1进行操作的话
就是把相邻的d的值交换一下
显然这样的交换能让d变成任意顺序
因此,只要c[1]==d[1]并且c[n]==d[n]
然后排序后的c和排序后的d相同的话,就ok.

这里必须要用Integer的equals方法比较才不会超时。。

直接用int的a[i]!=b[i]会超时>_<

</font>

<font color = black size = 6> 【代码】</font>
```cpp
import java.io.*;
import java.util.*; //code start from here
/*
d[i] = c[i+1]-c[i]; (1<=i<=n-1) change c[i] c[i]' = c[i+1]+c[i-1]-c[i]; d[i-1] = c[i]'-c[i-1];
= c[i+1]+c[i-1]-c[i]-c[i-1] == c[i+1]-c[i] = d[i]; d[i] = c[i+1]-c[i]'
= c[i+1]-c[i+1]-c[i-1]+c[i]
= c[i] - c[i-1];
= d[i-1];
*/ public class Main { final static int N = (int)1e5;
static InputReader in;
static PrintWriter out;
static int n;
static Integer c[],t[],d1[],d2[]; public static void main(String[] args) throws IOException{
in = new InputReader();
//out = new PrintWriter(System.out);
c = new Integer[N+10];t = new Integer[N+10];
d1 = new Integer[N+10]; d2 = new Integer[N+10]; n = in.nextInt();
for (int i = 1;i <= n;i++) c[i] = in.nextInt();
for (int i = 1;i <= n;i++) t[i] = in.nextInt();
if (!c[1].equals(t[1]) || !c[n].equals(t[n])){
System.out.println("No");
return;
}
for (int i = 1;i <= n-1;i++) d1[i] = c[i+1]-c[i];
for (int i = 1;i <= n-1;i++) d2[i] = t[i+1]-t[i];
Arrays.sort(d1, 1,n);
Arrays.sort(d2, 1,n);
for (int i = 1;i <= n-1;i++)
if (!d1[i].equals(d2[i])) {
System.out.println("No");
return;
}
System.out.println("Yes");
} static class InputReader{
public BufferedReader br;
public StringTokenizer tokenizer; public InputReader() {
br = new BufferedReader(new InputStreamReader(System.in),32768);
tokenizer = null;
} public String next(){
while (tokenizer==null || !tokenizer.hasMoreTokens()) {
try {
tokenizer = new StringTokenizer(br.readLine());
}catch(IOException e) {
throw new RuntimeException(e);
}
}
return tokenizer.nextToken();
} public int nextInt() {
return Integer.parseInt(next());
}
}
}

最新文章

  1. JS和JSON的区别
  2. Web3DGame之路,Babylonjs 和TypeScript学习笔记(一)
  3. MAC下如何显示隐藏文件
  4. input多选计算
  5. DDR3简介(一)
  6. ubuntu使用mailx利用SMTP发送邮件
  7. Ajax实现搜索栏中输入时的自动提示功能
  8. 在游戏中使用keybd_event的问题
  9. Swift笔记4
  10. linux+nginx+mysql+php高性能服务器搭建
  11. Android性能优化:谈话Bitmap内存管理和优化
  12. C语言面试题汇总
  13. iOS开发——modifying the autolayout engine from a background thread
  14. js回顾(DOM中标签的CRUD,表格等)
  15. 京东iPad新品开售销量环比增22倍
  16. idea右键没有svn选项
  17. 蓝桥杯第十届真题B组(2019年)
  18. html标签一
  19. 算法学习——从bzoj2286开始的虚树学习生活
  20. hdu-1253(bfs+剪枝)

热门文章

  1. 乐视云监控数据存放到influxdb中
  2. P3202 [HNOI2009]通往城堡之路 神仙题
  3. E20171015-hm
  4. CentOS 7.0 firewall防火墙关闭firewall作为防火墙,这里改为iptables防火墙
  5. ACM_lowbit
  6. 函数 out 传值 分割
  7. MVC系列学习(七)-模板页
  8. JQuery 记第N次被坑 - ajax请求字符集问题
  9. OFDM同步算法之Park算法
  10. C#语言最基础的认识变量