题目描述

给定一个含有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. CollectionUtils.select用法

    import java.util.ArrayList;import java.util.List; import org.apache.commons.collections.CollectionUt ...

  2. Python爬虫 | re正则表达式解析html页面

    正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"). 正则表达式通常被用来匹配.检索.替换和 ...

  3. 如何调试 Windows 服务

    概要 本文分步介绍了如何使用 WinDbg 调试程序 (windbg.exe) 调试 Windows 服务. 要调试 Windows 服务,可以在服务启动后将 WinDbg 调试程序附加到托管该服务的 ...

  4. BZOJ 3435: [Wc2014]紫荆花之恋

    二次联通门 : BZOJ 3435: [Wc2014]紫荆花之恋 二次联通门 : luogu P3920 [WC2014]紫荆花之恋 /* luogu P3920 [WC2014]紫荆花之恋 怀疑人生 ...

  5. C博客作业01--分支顺序结构

    1.展示PTA总分 2.本章学习总结 ①C语言数据类型 ② if-else语句 if (条件) { 语句A; } else { 语句B; } 在if (条件)后不加":" 要用&q ...

  6. Comparison of SIFT Encoded and Deep Learning Features for the Classification and Detection of Esca Disease in Bordeaux Vineyards(分类MobileNet,目标检测 RetinaNet)

    识别葡萄的一种虫害,比较了传统SIFT和深度学习分类,最后还做了目标检测 分类用的 MobileNet,目标检测 RetinaNet MobileNet 是将传统深度可分离卷积分成了两步,深度卷积和逐 ...

  7. shell 杀死80端口的所有进程

    netstat -lnp|grep |grep -v grep |awk

  8. python 判断一个字符串组合后,是否在另一个字符串中

    code #coding=utf- def getdic(s): dic = {} for i in s: if (i not in dic): dic[i] = else: dic[i] += re ...

  9. PHP 之循环创建文件夹

    /** * 循环创建文件夹 * @param string $dir 需要创建的文件夹路径 * @param integer $mode 文件夹权限 * @return bool 返回创建是否成功 * ...

  10. 【软工实践】Beta冲刺(1/5)

    链接部分 队名:女生都队 组长博客: 博客链接 作业博客:博客链接 小组内容 恩泽(组长) 过去两天完成了哪些任务 描述 登陆注册.查看用户信息.添加用户任务.查看任务等API的完善 tomcat的学 ...