题目描述

给定一个含有n个元素的数列,第i号元素开始时数值为i,元素i可以与距离为d[i]的元素进行交换。再给定一个1-n的全排列,问初始的数列可否交换成给定的样式。

输入:第一行一个整数n,第二行n个互不相同的整数表示目标数列,第三行n个整数表示d[i];

输出:如果能交换到给定样式,输出"YES",否则输出"NO"。

1<=n<=100

输入输出样例

输入 #1


输出 #1

YES

输入 #2


输出 #2

NO

输入 #3


输出 #3

YES

解题思路

最近一直在做cf的题目,不得不说cf的题目实在是太有趣了233333

这题很明显是个并查集,对于i-d[i],i+d[i]的可移动的区域进行一个合并就ok了

AC Code

#include<bits/stdc++.h>
using namespace std;
const int N=+;
int f[N],d[N],fa[N];
int find(int x) {
if(x==fa[x])return x;
return fa[x]=find(fa[x]);
}
void merge(int x,int y) {
x=find(x),y=find(y);
if(x==y)return;
fa[y]=x;
}
int main() {
int n;
cin>>n;
for(int i=; i<=n; i++)cin>>f[i];
for(int i=; i<=n; i++)cin>>d[i];
for(int i=; i<=n; i++)fa[i]=i;
for(int i=; i<=n; i++) {
if(i-d[i]>=)merge(i,i-d[i]);
if(i+d[i]<=n)merge(i,i+d[i]);
}
for(int i=; i<=n; i++) {
if(find(i)!=find(f[i])) {
cout<<"NO"<<endl;
return ;
}
}
cout<<"YES"<<endl;
return ;
}

CF28B pSort的更多相关文章

  1. B. pSort

    题目链接: http://codeforces.com/problemset/problem/28/B 题意: 给一个n,原本有个1到n按顺序排列的序列,给一个序列问,在给一个数组,表示这个位置的数可 ...

  2. c# JD快速搜索工具,2015分析JD搜索报文,模拟请求搜索数据,快速定位宝贝排行位置。

    分析JD搜索报文 搜索关键字 女装 第二页,分2次加载. rt=1&stop=1&click=&psort=&page=3http://search.jd.com/Se ...

  3. 淘宝(阿里百川)手机客户端开发日记第四篇 自定义ListView详解

    我们知道,如果采用官方的ListView,实现的功能在很多时候,并不能满足自己的业务需求,比如在设计到复杂的列表的时候,这一节,我们就开始动手自己实现自定义的ListView. 在上一节中,我们采用了 ...

  4. 01.base-v1.js

    /* Date: 2014-01-21 */ function login() { return location.href = "https://passport.jd.com/new/l ...

  5. 【解题报告】zju-1030 Farmland

    原题地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=30 题目大意: 平面图有一些点和一条边,要求找这样的多边形: 1.边的 ...

  6. [CFgym]2015-2016 ACM-ICPC Pacific Northwest Regional Contest小结

    *感谢两位浙江大佬带我飞 贴下成绩 div2 div1 *div2不是我打的上个厕所就5/11了 比赛小结 A [题目大意] 有n(n<=500)个机场,两两之间距离是g[i][j],每经停一个 ...

  7. sorts

    各种排序算法: #include <stdio.h> #include <string.h> #include <ctype.h> #include <std ...

  8. python爬虫系列之爬京东手机数据

    python抓京东手机数据 作者:vpoet mail:vpoet_sir@163.com #coding=utf-8 import urllib2 from lxml import etree im ...

  9. TreeView控制消息

    控制消息的作用 通过发送消息到Treeview控件, 就能够控机Treeview控件.常用的控制有: 获取被点击的节点 获取节点的文本 设置节点的文本 获取节点的父节点 获取节点的子节点 TVM_GE ...

随机推荐

  1. MATLAB中运算符优先级

    下述运算符的优先级从低到高: 1.先决或(||): 2.先决与(&&): 3.逻辑或(|): 4.逻辑与(&): 5.等于类(<,<=,>,>=,==, ...

  2. 洛谷 P3376 【模板】网络最大流 题解

    今天学了网络最大流,EK 和 Dinic 主要就是运用搜索求增广路,Dinic 相当于 EK 的优化,先用bfs求每个点的层数,再用dfs寻找并更新那条路径上的值. EK 算法 #include< ...

  3. BZOJ 5305: [Haoi2018]苹果树 组合计数

    一定要注意要乘阶乘,细节很多. code: #include <bits/stdc++.h> #define ll long long #define setIO(s) freopen(s ...

  4. WinDbg常用命令系列---显示加载的模块列表lm

    lm (List Loaded Modules) lm命令显示指定的加载模块.输出包括模块的状态和路径. lmOptions [a Address] [m Pattern | M Pattern] 参 ...

  5. Redis的通用key操作

    这些操作跟具体的类型没有关系,而是跟key相关. 1.查询Redis中的key的名称: 所有key: 以my开头: 2.删除键: 3.判断某一个键是否存在: 4.重命名: 5.设置过期时间: 如果未设 ...

  6. ESP8266低功耗解决的其中一个问题(芯片发热,影响旁边的温湿度芯片)

    这个项目的这个问题困扰了自己好长时间了,ESP8266芯片发热,导致了旁边的温湿度传感器采集不了空气中的温度....采集的温度是芯片发热的温度 一直采集出来的是30多度......尽管空气温度10几度 ...

  7. 数据结构实验之排序四:寻找大富翁(SDUT 3401)

    #include <stdio.h> #include <stdlib.h> #include <string.h> void Swap(int a[], int ...

  8. IDEA的foreach循环

    试了试其他快捷键, 突然发现的... 先弄一个list 再把变量名写出来先 按快捷键 ctrl+alt+J, 选最后一个 看效果

  9. E4A写的app,点按钮,直接进入抖音指定用户界面

    今天在网上看到有一个人,直接进抖音某个指定用户的界面,一般模拟的方式,要先通过搜索的方式,再选用户,点进去 但是这样操作,不大友好,也影响速度 最理想的方式,是通过 "无障碍",直接控制抖音进入指定的 ...

  10. MySQL事务隔离级别(一)

    本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做 ...