赞
踩
- //这道题目的核心思路是受洛谷题解区的一个题解的启发的
- //https://www.luogu.org/problemnew/solution/P1459
- //然后用自己的java语言中的Map实现的
- //思路
-
- //编号: 1 2 3 4 5 6 7 8 9
- //输入: 2 2 1 3 3 3 2 3 1
- //目标: 1 1 2 2 2 3 3 3 3
- //差值: 1 1 -1 1 1 0 -1 0 -2
- //只需要让最后所有的差值为0即可
- //因此可以计算差值需要交换几次
- //又因为数值只可以是1,2,3所以差值只可能是-2,-1,0,1,2
- //用ans表示最后的结果
- //因此考虑,先让2和-2结合直接变为0,此时ans+=2和-2中较少的那个数的个数
- //然后当2不足或者是-2不足时,
- //如果-2有剩余,那么一定有多余的1,可以结合,此时交换的次数就等于需要1的个数,也就是-2*个数的绝对值
- //即ans+=Math.abs(cha*2),cha=个数差
- //如果2剩余同理
- //然后ans+=-1和1中个数较少的那一个,因为个数多的就应该是上一步被消耗的,就是最后的结果
-
-
- import java.util.Arrays;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Scanner;
-
- public class Main {
-
- public static void main(String[] args) {
- Scanner in=new Scanner(System.in);
- int n=

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。