poj 2470 Ambiguous permutations

简介:

做到这道题目,我是真的想吐槽有些人了。。。因为本人是一个很喜欢理清思路的人,如果不理清思路,我几乎不能向下走一步,所以吐槽某些思路混乱的人。。。

所以每每看到网上一些刷题的解题报告里面说:迷迷糊糊就AC了,我是坚决不做这种事情的。。。

这道题,英文题目是不太好懂,但是中文该好懂吧,本来可以很简单把题目说清楚的,看了discuss的一些伙计非把题目简单的意思说的很晦涩难懂。。。

真不知道这些哥们的大脑怎么长的,同样的水题,为什么不能搞的不这么“高端”呢。。。

让我想起了有时看解题报告,一些人的代码简直不能入目,完全不知道在想些什么,写的相当晦涩。。我说就不能用用途去命名每个变量吗。。。


进入正题,先放上discuss某哥们的解释:

新的排列中第i个数是旧的排列中数i(在旧的排列中)的位置。比如,新排列中5(第1个数)是旧排列中数1的位置(第5个)。

我看了一下,呵呵了一下,其实完全可以用更简单的表述。。。


下面贴我的解释:

就是新旧位置和数字的互换!比如,原来的数字和位置(位置用[]框起来)是:
 2   3   4   5   1
[1] [2] [3] [4] [5]

-->

 5   1   2   3   4
[1] [2] [3] [4] [5]


原来2在位置[1],现在1在位置[2]。。。以此类推,不知道为什么你们要说得这么麻烦


好了,贴代码:

#include <stdio.h>

int a[100002];
int b[100002]; //a[]的反转序列

int main()
{
	int n;

	int i;
	while(scanf("%d",&n) && n!=0)
	{
		for(i=1;i<=n;i++)
			scanf("%d",&a[i]);

		for(i=1;i<=n;i++)
			b[a[i]]=i;

		for(i=1;i<=n;i++)
			if(a[i]!=b[i])
				break;

		if(i>=n+1)
			printf("ambiguous\n");

		else
			printf("not ambiguous\n");
	}

	return 0;
}

简化为:

#include <stdio.h>

int a[100002];

int main()
{
	int n;

	int i;
	while(scanf("%d",&n) && n!=0)
	{
		for(i=1;i<=n;i++)
			scanf("%d",&a[i]);

		for(i=1;i<=n;i++)
			if(a[a[i]]!=i)
				break;

		if(i>=n+1)
			printf("ambiguous\n");

		else
			printf("not ambiguous\n");
	}

	return 0;
}




相关文章
|
17天前
|
算法
动态规划算法学习四:最大上升子序列问题(LIS:Longest Increasing Subsequence)
这篇文章介绍了动态规划算法中解决最大上升子序列问题(LIS)的方法,包括问题的描述、动态规划的步骤、状态表示、递推方程、计算最优值以及优化方法,如非动态规划的二分法。
50 0
动态规划算法学习四:最大上升子序列问题(LIS:Longest Increasing Subsequence)
|
开发框架 .NET
poj 3468 A Simple Problem with Integers线段树区间修改
题目意思很简单,有N个数,Q个操作, Q l r 表示查询从l到r 的和,C l r v 表示将从l到r 的值加上v,明显的线段树,不知道线段树的人肯定暴力,肯定超时,哈哈!!
30 0
UVa10776 - Determine The Combination(有重复元素的组合问题)
UVa10776 - Determine The Combination(有重复元素的组合问题)
43 0
|
算法 Go
HDU-1548,A strange lift(Dijkstra)
HDU-1548,A strange lift(Dijkstra)
POJ 1306 Combinations
POJ 1306 Combinations
111 0
|
人工智能
POJ 2533 Longest Ordered Subsequence
POJ 2533 Longest Ordered Subsequence
107 0
|
人工智能
poj2891:Strange Way to Express Integers
题目连接: 分明$excrt$就过了。 为什么还要仔细读题呢?    $qwq$ 反正我没读题然后被卡$long \ long +$输出格式错$……$总共$WA$了四次 怕不是要退役…… 上代码:   #include #include #include using na...
1036 0