1、http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2189
2、题目;
基友记
Time Limit: 1000MS Memory limit: 65536K
题目描述
WP已经隐藏不了自己对
CZ的爱慕之情,终于在
11.10这天向
CZ表达了自己的爱意。
”请做我的好基友
,我愿意一辈子照顾你,我们在一起吧?
”。
CZ笑了笑说,我喜欢高智商的程序员,你能用程序实现我的一个问题我们就在一起。
题目描述如下:
给你n个数(1<= n <= 1000),这个n数的取值范围为[0,n - 1],问任意交换其中两个数所形成的的不同的序列有多少种?
机智的你一定可以帮你的好朋友解决他的终身大事的,加油…….
输入
输入一个数
n,
接下来输入
n
个数。
输出
序列有多少种
示例输入
10 6 6 5 6 5 7 2 5 5 4
示例输出
37
3/AC 代码
#include<stdio.h>
int a[1005];
int count[1005];
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
count[a[i]]++;
}
int len=n-1,sum=0;
for(int i=0;i<n;i++)
{
count[a[i]]--;
sum+=len-count[a[i]];
len--;
}
printf("%d\n",sum+1);
}
return 0;
}