codechef Ambiguous Permutations 题解
来源:互联网 发布:淘宝客服容易做吗 编辑:程序博客网 时间:2024/05/16 17:50
Some programming contest problems are really tricky: not only do they
require a different output format from what you might have expected, but
also the sample output does not show the difference. For an example,
let us look at permutations.
A permutation of the integers 1 to n is an
ordering of
these integers. So the natural way to represent a permutation is
to list the integers in this order. With n = 5, a
permutation might look like 2, 3, 4, 5, 1.
However, there is another possibility of representing a permutation:
You create a list of numbers where the i-th number is the
position of the integer i in the permutation.
Let us call this second
possibility an inverse permutation. The inverse permutation
for the sequence above is 5, 1, 2, 3, 4.
An ambiguous permutation is a permutation which cannot be
distinguished from its inverse permutation. The permutation 1, 4, 3, 2
for example is ambiguous, because its inverse permutation is the same.
To get rid of such annoying sample test cases, you have to write a
program which detects if a given permutation is ambiguous or not.
Sample Input
41 4 3 252 3 4 5 1110
Sample Output
ambiguousnot ambiguousambiguous
输入数据也是超大的。最大单列有100000个整数
所以这次使用getchar和fputs来处理数据,速度还不错。
#pragma once#include <stdio.h>int scanInt(){register int res = 0, next = 0;while ((next = getchar()) >= '0' && next <= '9'){res = (res<<3) + (res<<1) + next - '0';}return res;}int AmbiguousPermutations(){char *ambiguous = "ambiguous\n";char *nonAmbiguous = "not ambiguous\n";int n = 0;while ((n = scanInt()) != 0){int *A = new int[n+1];int *B = new int[n+1];for (int i = 1; i <= n; i++){A[i] = scanInt();B[A[i]] = i;}bool isAmbiguous = true;for (int i = 1; i <= n; i++){if (A[i] != B[i]){isAmbiguous = false;break;}}if (isAmbiguous) fputs(ambiguous, stdout);else fputs(nonAmbiguous, stdout);delete [] A;delete [] B;}return 0;}
- codechef Ambiguous Permutations 题解
- codechef Little Elephant and Permutations题解
- Ambiguous Permutations
- Ambiguous permutations
- zoj 2795 Ambiguous permutations
- poj 2470 Ambiguous permutations
- zoj 2795 Ambiguous permutations
- poj 2470 Ambiguous permutations
- ZOJ 2795 Ambiguous permutations
- ZOJ 2795 Ambiguous permutations
- poj 2470 Ambiguous permutations
- poj 2470 Ambiguous permutations
- ZOJ - 2795 Ambiguous permutations
- ZOJ 2795-Ambiguous permutations
- TOJ 2132.Ambiguous permutations
- POJ 2470 Ambiguous permutations G++
- ZOJ 2795 Ambiguous permutations 水~
- codechef Turbo Sort 题解
- 利用java中的Socket实现私聊和公聊的聊天工具,控制台版本的。
- JVM系列 HotSpot VM GC 的种类
- Ubuntu下安装SSH
- linux杂谈(十五):ftp的企业应用级的配置(二)
- 多线程的一点小事
- codechef Ambiguous Permutations 题解
- week10--第四题(百度)
- hadoop任务调度
- JVM系列二:GC策略&内存申请、对象衰老
- C++ primer 读书笔记(2)
- 指向函数的指针
- 如何使用jlink一键烧录整个flash Hi3518 a c e Hi3515 Hi3512
- Flask
- osgi