[关闭]
@sensitive-cs 2016-10-19T09:03:40.000000Z 字数 389 阅读 703

D - Permutation

分析:

如果一个数字的排列有n个,每个数字只出现过一次,那么这就叫一个permutation,输出0。如果不满足permutation,那么就找出得到一个permutation需要修改的最少次数。

思路:

用一个二重循环,统计每个数字出现的次数。则未出现数字的个数就是需要修改的次数。

代码:

  1. #include <stdio.h>
  2. int a[5009];
  3. int b[5009];
  4. int main()
  5. {
  6. int n,i,j,sum = 0;
  7. scanf("%d",&n);
  8. for (i = 1;i <= n;i++)
  9. scanf("%d",&a[i]);
  10. for (i = 1;i <= n;i++)
  11. {
  12. for (j = 1;j <= n;j++)
  13. {
  14. if (a[j] == i)
  15. b[i]++;
  16. }
  17. }
  18. for (i = 1;i <= n;i++)
  19. {
  20. if (b[i] == 0)
  21. sum++;
  22. }
  23. printf("%d\n",sum);
  24. return 0;
  25. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注