拼多多网站的类型,开淘宝店和自己做购物网站哪个好,平台研发,LAMP环境wordpress放在哪里Array
题目大意#xff1a;
有一个数列#xff0c;随机交换两个数#xff0c;原数列和当前数列相同部分有可能有多少个
原题#xff1a;
题目描述
Alice 有一个数列 ai。 但是她不喜欢这个数列#xff0c;于是她决定随机交换其中两个数。 Alice 想知道#xff0c;交…Array
题目大意
有一个数列随机交换两个数原数列和当前数列相同部分有可能有多少个
原题
题目描述
Alice 有一个数列 ai。 但是她不喜欢这个数列于是她决定随机交换其中两个数。 Alice 想知道交换后的数列与原数列相同的数有多少个。请求出所有可能的 值。
输入
第一行一个正整数 n表示 Alice 的数列的长度。第二行 n 个正整数第 i 个数表示 ai即交换前 的数列的第 i 项。
输出
一行若干个严格递增的 正整数用空格隔开表示交换后的数列与原数列相 同的数的个数。
输入样例
3
2 3 3输出样例
1 3说明
样例解释
交换后可能的数列有 2 3 3, 3 2 3, 3 3 2个数分别是 3, 1, 1 对于 100% 的数据1 ≤ n ≤ 100, 1 ≤ ai ≤ 1000。
解题思路
交换两个数只可能改变两个数所以要不有n-2个要不有n个当没有不同的数的时候没有n-2当没有相同的数的时候没有n
代码:
#includecstdio
using namespace std;
int n,p1,p2,num,sum,a[105];
int main()
{scanf(%d,n);scanf(%d,a[1]);for (int i2;in;i){scanf(%d,a[i]);if (a[i]!a[1])//判断是否有不同的p11;if (p2) continue;for (int j1;ji;j)//判断是否有相同的if (a[i]a[j]){p21;break;}}if (p1p2) printf(%d %d,n-2,n);//分三种情况if (p1!p2) printf(%d,n-2);if (!p1p2||n1) printf(%d,n);
}