题目传送门:https://ac.nowcoder.com/acm/contest/551/H

题目描述

众所周知 CSL 不仅玩魔方很强,打麻将也很强。今天他打魔法麻将的时候,在路上撞到了一个被打乱的 n 维魔法拼图。每一块拼图的位置用一个 n 维的坐标 (p1,p2,…,pn)(p1,p2,…,pn) 来表示。将拼图的任意两块交换位置称为一步。CSL 赶着打魔法麻将时间很紧,对步数和时间也很严格,所以需要用恰好 t 步把拼图复原。请问他能做到吗?

输入描述:

第一行有一个整数 n,表示拼图的维数。

第二行有 n 个整数 d1,d2,…,dnd1,d2,…,dn,分别表示每一维的大小。
下面 2×∏ni=1di2×∏i=1ndi 行,每行有 n 个整数:第 2⋅i−12⋅i−1 行表示 第 i 块拼图的初始位置 (ai,1,ai,2,…,ai,n)(ai,1,ai,2,…,ai,n),第 2⋅i2⋅i 行表示第 i 块拼图的目标位置 (bi,1,bi,2,…,bi,n)(bi,1,bi,2,…,bi,n),保证不会有多个拼图在同一初始位置或目标位置。
 
最后一行有一个整数 t,表示 CSL 要求的步数。
 
1≤n≤101≤n≤10
n∏i=1di≤106∏i=1ndi≤106
1≤ai,j,bi,j≤dj1≤ai,j,bi,j≤dj
0≤t≤2⋅1060≤t≤2⋅106

输出描述:

如果 CSL 可以用恰好 t 步复原,在一行输出 "YES",否则输出 "NO"。
示例1

输入

复制

1
1
1
1
1

输出

复制

NO
示例2

输入

复制

2
2 2
1 2
2 1
1 1
2 2
2 1
1 2
2 2
1 1
2

输出

复制

YES

解题思路:

类似于前面的那道一维的交换题目 CSL的魔法

不过这里是多维的,怎样形成映射呢?

用 string !

AC code:

 #include <bits/stdc++.h>
#define INF 0x3f3f3f3f
#define LL long long
#define inc(i, j, k) for(int i = j; i <= k; i++)
#define rep(i, j, k) for(int i = j; i < k; i++)
#define mem(i, j) memset(i, j, sizeof(i))
#define gcd(i, j) __gcd(i, j)
#define pb push_back
using namespace std;
const int MAXN = 2e5+; string st[MAXN], ed[MAXN], str;
map<string, int>vis;
int N, t;
int main()
{
int num;
scanf("%d", &N);
int len = ;
inc(i, , N){
scanf("%d", &num);
len*=num;
}
// printf("len %d\n", len); getchar();
// /*
inc(i, , len){
getline(cin, str);
st[i] = str;
vis[str] = i;
getline(cin, str);
ed[i] = str;
}
scanf("%d", &t);
LL ans = ;
inc(i, , len){
if(st[i] != ed[i]){
ans++;
int tp = vis[ed[i]];
swap(st[i], st[tp]);
vis[st[i]] = i;
vis[st[tp]] = tp;
}
if(ans > t) break;
}
if(ans > t) puts("NO");
else if((t-ans)% == ) puts("YES");
else puts("NO");
// */
return ;
}

H、CSL 的拼图 【多维点的交换】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)的更多相关文章

  1. G、CSL 的训练计划【BFS 贪心】(“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)

    题目传送门:https://ac.nowcoder.com/acm/contest/551/G 链接:https://ac.nowcoder.com/acm/contest/551/G来源:牛客网 题 ...

  2. F、CSL 的神奇序列 【规律】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)

    题目传送门:https://ac.nowcoder.com/acm/contest/551/F 题目描述 CSL 有一个神奇的无穷实数序列,他的每一项满足如下关系: 对于任意的正整数 n ,有 n∑k ...

  3. E、CSL 的魔法 【模拟】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)

    题目传送门:https://ac.nowcoder.com/acm/contest/551#question 题目描述 有两个长度为 n 的序列,a0,a1,…,an−1a0,a1,…,an−1和 b ...

  4. D、CSL 的字符串 【栈+贪心】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)

    题目传送门:https://ac.nowcoder.com/acm/contest/551#question 题目描述 CSL 以前不会字符串算法,经过一年的训练,他还是不会……于是他打算向你求助. ...

  5. C、CSL 的密码 【set暴力 || 后缀数组】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛 )

    题目传送门:https://ac.nowcoder.com/acm/contest/551/C 题目描述 众所周知,CSL 最喜欢的密码是 ******.于是有一天……     为了改变这一点,他决定 ...

  6. “盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛题解&&源码【A,水,B,水,C,水,D,快速幂,E,优先队列,F,暴力,G,贪心+排序,H,STL乱搞,I,尼姆博弈,J,差分dp,K,二分+排序,L,矩阵快速幂,M,线段树区间更新+Lazy思想,N,超级快速幂+扩展欧里几德,O,BFS】

    黑白图像直方图 发布时间: 2017年7月9日 18:30   最后更新: 2017年7月10日 21:08   时间限制: 1000ms   内存限制: 128M 描述 在一个矩形的灰度图像上,每个 ...

  7. 2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 H题 Rock Paper Scissors Lizard Spock.(FFT字符串匹配)

    2018 ACM-ICPC 中国大学生程序设计竞赛线上赛:https://www.jisuanke.com/contest/1227 题目链接:https://nanti.jisuanke.com/t ...

  8. 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H)

    目录 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛链接 竞赛题目 总结 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛 ...

  9. 2017广东工业大学程序设计竞赛初赛 题解&源码(A,水 B,数学 C,二分 D,枚举 E,dp F,思维题 G,字符串处理 H,枚举)

    Problem A: An easy problem Description Peter Manson owned a small house in an obscure street. It was ...

随机推荐

  1. 使用 OLEDB 及 SqlBulkCopy 将多个不在同一文件夹下的 ACCESS mdb 数据文件导入MSSQL

    注:转载请标明文章原始出处及作者信息http://www.cnblogs.com/z-huifei/p/7380388.html 前言 OLE DB 是微软的战略性的通向不同的数据源的低级应用程序接口 ...

  2. Mavean多工程依赖项目

    前言 本篇文章基于Java开发小技巧(二):自定义Maven依赖中创建的父工程project-monitor实现,运用我们自定义的依赖包进行多工程依赖项目的开发. 下面以多可执行Jar包项目的开发为例 ...

  3. 记Spring与跨域

    跨域 简单理解就是跨域名 (ip+端口) 在 52liming.com 中向demo.com中发起Ajax请求, 出于安全考虑会进行拦截 参考: 浏览器的同源策略 什么是JS跨域访问? 跨域资源共享 ...

  4. Groovy中的操作符重载

    操作者 方法 a + b a.plus(b)中 a - b a.minus(b)中 a * b a.multiply(b)中 a ** b a.power(b)中 a / b a.div(b)中 a ...

  5. 使用NOPI读取Word、Excel文档内容

    使用NOPI读取Excel的例子很多,读取Word的例子不多. Excel的解析方式有多中,可以使用ODBC查询,把Excel作为一个数据集对待.也可以使用文档结构模型的方式进行解析,即解析Workb ...

  6. Q:接口与抽象类

    博文回答一下两个问题: 接口和抽象类的区别 选用接口和抽象类的依据 对于问题1: 从java语法的角度上来说,接口的所有成员和方法都是public的,且其方法均为abstract的.直到jdk1.8之 ...

  7. 用Jq遍历一个div里面的所有input 并判断是否为空?

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. jQuery bind()与delegate()的区别

    笔试题: bind()与delegate()的区别主要有三点: 1 绑定目标 .bind直接绑在目标元素上 .delegate绑在父元素上 2  监听个数 .bind监听个数多——每个目标元素都需要添 ...

  9. UOJ#347. 【WC2018】通道(边分治)

    传送门 就是求两个点 \(a,b\) 使得 \(dis_1(a,b)+dis_2(a,b)+dis_3(a,b)\) 最大 step1 对第一棵树边分治 那么变成 \(d_1(a)+d_1(b)+di ...

  10. SPOJ:LCS2 - Longest Common Substring II

    题面 给定一些字符串,求出它们的最长公共子串 输入格式 输入至多 \(10\) 行,每行包含不超过 \(100000\)个的小写字母,表示一个字符串 输出格式 一个数,最长公共子串的长度 若不存在最长 ...