您现在的位置是:主页 > news > 做移动网站优化排名首页/商丘seo推广

做移动网站优化排名首页/商丘seo推广

admin2025/5/5 12:49:53news

简介做移动网站优化排名首页,商丘seo推广,怀化订水网站,做雨棚的网站import java.io.IOException;import java.io.BufferedReader;import java.io.InputStreamReader;public class Main {/***这个题目是求解最少的移动次数。细节上考虑,是要将一个奶牛身上的苹果转移到另一个奶牛身上,但是实际上求最小,并不需要…

做移动网站优化排名首页,商丘seo推广,怀化订水网站,做雨棚的网站import java.io.IOException;import java.io.BufferedReader;import java.io.InputStreamReader;public class Main {/***这个题目是求解最少的移动次数。细节上考虑,是要将一个奶牛身上的苹果转移到另一个奶牛身上,但是实际上求最小,并不需要…

import java.io.IOException;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class Main {

/**

*这个题目是求解最少的移动次数。细节上考虑,是要将一个奶牛身上的苹果转移到另一个奶牛身上,但是实际上求最小,并不需要一个一个的转移。

*奶牛拥有的少于平均多少个,除以二就是最少需要的次数。遍历所有的奶牛,计算少于平均的奶牛需要多少个就可以了,如果想省略判断是否少于平均,

*也是可以的,直接用奶牛拥有的苹果个数减去平均值,取绝对值除2就可以了,但是由于多的也计算,少的也计算,那么最后要将总的次数除以二。

*注意细节问题:

*一:如果总苹果sum( = a1 + a2 + .. + an)不能整除奶牛个数n,则无法平均,无解

*二:每次只能从一个奶牛上恰好拿2个到另一个奶牛,这个和数字运算有关,奇数和偶数减2仍然保持自身奇偶性,

*但是平均数只可能是奇数或者偶数中的一种,所以输入的每个数必须和平均数保持一致奇偶性,否则无解。

*/

public static void main(String[] args) throws IOException {

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

boolean haveOdd = false;

boolean haveEven = false;

int sum = 0;

int avg = 0;

int numNo = Integer.parseInt(br.readLine().trim());

int[] arrNum = new int[numNo];

String[] arrInput = br.readLine().trim().split(" ");

int step = 0;

for (int i=0; i

arrNum[i] = Integer.parseInt(arrInput[i]);

sum += arrNum[i];

if (arrNum[i] % 2 == 0) {

haveEven = true;

} else {

haveOdd = true;

}

}

if (sum % numNo != 0) {//不能整除

System.out.println(-1);

return;

}

avg = sum /numNo;

if (((avg % 2 == 0) && haveOdd == true) || ((avg % 2 == 1) && haveEven == true)) {//判断每个数和avg的奇偶性是否一致

System.out.println(-1);

return;

}

for (int i=0; i

if (arrNum[i] < avg) {

step += (avg - arrNum[i]) >> 1;//除以2

}

}

System.out.println(step);

}

}