CSL 的拼图 枚举更新

 

链接: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

题解:这个题和前面的一个题思路是一样的https://ac.nowcoder.com/acm/contest/551/E,只不过就是哈希处理一下就可以。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define pb push_back
#define mk make_pair
const int N=2e6+10;
map<ll ,int> mp;
int n,m,t;
int a[12],id;
ll b[N],c[N];

int main()
{
	ll x,y;
	m=1;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
		m*=a[i];
	}

	int ans=0;
	for(int i=1;i<=m;i++)
	{
		x=0;
		for(int j=1;j<=n;j++)
		{
			scanf("%lld",&y);
			x=x*10+y;
		}
		b[i]=x;
		mp[x]=i;
		x=0;
		for(int j=1;j<=n;j++)
		{
			scanf("%lld",&y);
			x=x*10+y;
		}
		c[i]=x;
		
	}
	scanf("%d",&t);
	int pos;
	for(int i=1;i<=m;i++)
	{
		if(b[i]==c[i]) continue;
		ans++;
		pos=mp[c[i]];
	//	cout<<b[i]<<" "<<c[i]<<" "<<pos<<endl;
		mp[b[i]]=pos;
		swap(b[pos],b[i]);
	}
	if(ans<=t && (t-ans)%2==0) cout<<"YES\n";
	else cout<<"NO\n";
	return 0;
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zotero CSL(Citation Style Language)是一个开源的、零配置的引用风格样式表语言。它是用于Zotero等引文管理软件的引文风格的标准化语言。Zotero是一个免费的引文管理工具,旨在帮助学者和研究人员轻松管理他们的研究文献和引文。 使用Zotero CSL,用户可以方便地根据特定的学术引文要求创建和编辑引文风格。这些风格可以包括学术期刊的引文要求、出版商的指导方针和特定领域的引文规范等。用户可以选择已经存在的引文风格,也可以根据需要自定义新的引文风格。 Zotero CSL借助于XML语言来描述引文风格。用户可以使用XML编写具体的引文格式,包括作者、标题、出版日期等等。另外,用户还可以通过使用条件语句、循环语句等来实现更复杂的引文格式要求。这些XML文件可以与Zotero和其他引文管理软件一起使用,以确保生成符合学术期刊或指导方针要求的引文。 除了提供标准的引文风格,Zotero CSL还具有自动更新的功能。一旦某个学术期刊或指导方针发布了新的引文要求,用户可以更新相应的CSL文件,以适应最新的引文规范。这样,用户就无需手动更改每个引文的格式,而是可以通过简单的更新方法自动应用新的引文风格。 总而言之,Zotero CSL提供了一个简单、强大和灵活的引文风格管理工具,可以帮助用户轻松地满足不同学术期刊或指导方针对引文格式的要求。同时,它还具有自动更新的特性,以确保用户始终使用最新的引文规范。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值