当前位置: 首页 > news >正文

洋洋点建站软文推广发稿

洋洋点建站,软文推广发稿,做网站博客怎么推广,用wordpress搭建的网站题目 MELON有一堆精美的雨花石(数量为n&#xff0c;重量各异)&#xff0c;准备送给S和W。MELON希望送给俩人的雨花石重星一致&#xff0c;请你设计一个程序帮MELON确认是否能将雨花石平均分配。 输入描述 第1行输入为雨花石个数:n&#xff0c;0<n <31. 第2行输入为空格分…

题目

MELON有一堆精美的雨花石(数量为n,重量各异),准备送给S和W。MELON希望送给俩人的雨花石重星一致,请你设计一个程序帮MELON确认是否能将雨花石平均分配。
输入描述
第1行输入为雨花石个数:n,0<n <31.
第2行输入为空格分割的各雨花石重量: m[0] m[1 ]… m[n - 1], 0<m[k]<1001不需要考虑异常输入的情况。
输出描述
如果可以均分,从当前雨花石中最少拿出几块,可以使两堆的重量相等:
如果不能均分,则输出-1。
示例1:
输入
4
1 1 2 2
输出
2
说明
输入第一行代表共4颗雨花石,第二行代表4颗雨花石重量分别为1、1、2、2。均分时只能分别为1,2,需要拿出重星为1和2的两块雨花石,所以输出2。
示例2:
输入
10
1 1 1 1 1 9 8 3 7 10
输出
3
说明
输入第一行代表共10颗雨花石,第二行代表4颗雨花石重量分别为1、1、1、1、1、9、8、3、7、10。均分时可以1,1,1,1,1,9,7和10,8,3,也可以1,1,1,1,9.8和10,7,3,1,或者其他均分方式,但第一种只需要拿出重量为10.8,3的3块雨花石,第二种需要拿出4块,所以输出3(块数最少)。

思路

两个方案:

排列组合

排列组合思路参照模板:【JAVA-排列组合】一个套路速解排列组合题

针对本题而言,简要分析如下:
首先计算雨花石的重量总和sum,sum不能被2整除,直接返回-1。能被2整除,那么我们至少需要拿出多少块雨花石,使其重量和target=sum/2。
要求最少数量,先拿重量较大的雨花石,所以可以将输入nums降序排列,剪枝分析如下:

  1. 雨花石重量可能存在重复,注意同层相同剪枝
  2. 如果某个组合的雨花石重量在加入下一个雨花石之前,已经不小于target或者组合个数已经不小于之前解的个数,直接剪枝

最后注意,因为要求的res为最小值,初始值设置的Integer.MAX_VALUE ,如果没有找到合适的组合,res还是等于Integer.MAX_VALUE,那么最后需要返回-1.

动态规划

定义:

dp[i][j]的含义为:在前i个雨花石选择,使其重量和等于j,需要的最少雨花石个数。

初始化:

dp[i][0],要使目标和等于0,那么选0个即可,所以dp[i][0]=0,其中i的范围为:0~nums.length-1
dp[0][j],从前0个元素选(即只有nums[0]可选,目标和就是nums[0]),使其累加和为j(j的范围为0~target),如果j=nums[0],那么dp[0][j]=1,否则给其一个初始值。具体初始值给多少? 比如nums为:2 3 4 5,dp[0][2]=1。dp[0][3]不可能满足(只选2,不可能使其和等于3),可以将其结果设置为一个比较大的值(因为最后取的最小值,如果存在一个满足条件的值,两相比较就能得到最小结果)。这里我设置为nums.length。

递推关系:
对于dp[i][j](i>0,j>0),只有两种情况,当前值选和当前值不选

当前值选:dp[i][j]=dp[i-1][j-nums[i]]+1
当前值不选: dp[i][j]=dp[i-1][j]
结果中两者取其小即可。同时需要注意,如果当前值比目标j还大,那肯定走不选的分支
根据初始化和递推关系,最后求得dp[nums.length-1][target],如果其值等于nums.length(即初始化的值),说明不存在这样的组合,直接返回-1。

题解

排列组合

package hwod;import java.util.Arrays;
import java.util.LinkedList;
import java.util.Scanner;public class YuhuaStone {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = Integer.parseInt(sc.nextLine());int[] nums = new int[n];for (int i = 0; i < n; i++) {nums[i] = sc.nextInt();}System.out.println(yuHuaStone(nums));}private static int res = Integer.MAX_VALUE;private static int yuHuaStone(int[] nums) {int sum = Arrays.stream(nums).sum();if (sum % 2 != 0) return -1;int target = sum / 2;int[] used = new int[nums.length];LinkedList<Integer> path = new LinkedList<>();Arrays.sort(nums);dfs(nums, nums.length - 1, path, used, target);return res == Integer.MAX_VALUE ? -1 : res;}private static void dfs(int[] nums, int start, LinkedList<Integer> path, int[] used, int target) {if (target == 0) {res = Math.min(res, path.size());return;}for (int i = start; i >= 0; i--) {if (target <= 0 || path.size() >= res) break;if (i < nums.length - 1 && nums[i + 1] == nums[i] && used[i + 1] == 0) continue;path.addLast(nums[i]);used[i] = 1;dfs(nums, i - 1, path, used, target - nums[i]);path.removeLast();used[i] = 0;}}
}

动态规划

package hwod;import java.util.Arrays;
import java.util.LinkedList;
import java.util.Scanner;public class YuhuaStone {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = Integer.parseInt(sc.nextLine());int[] nums = new int[n];for (int i = 0; i < n; i++) {nums[i] = sc.nextInt();}System.out.println(yuHuaStone(nums));}private static int yuHuaStone(int[] nums) {int sum = Arrays.stream(nums).sum();if (sum % 2 != 0) return -1;int target = sum / 2;int size = nums.length;int[][] dp = new int[size][target + 1];for (int j = 0; j < target + 1; j++) {if (j == nums[0]) dp[0][j] = 1;else dp[0][j] = size;}for (int i = 1; i < size; i++) {for (int j = 1; j <= target; j++) {if (nums[i] > j) dp[i][j] = dp[i - 1][j];else dp[i][j] = Math.min(dp[i - 1][j], 1 + dp[i - 1][j - nums[i]]);}}int res = dp[size - 1][target];return res == size ? -1 : res;}
}

用例

补充输出-1的用例

用例一

6
2 5 5 6 7 10

用例二

3
2 3 3

推荐

如果你对本系列的其他题目感兴趣,可以参考华为OD机试真题及题解(JAVA),查看当前专栏更新的所有题目。


文章转载自:
http://commons.c7622.cn
http://zoograft.c7622.cn
http://rhizopod.c7622.cn
http://rancherie.c7622.cn
http://rationale.c7622.cn
http://interauthority.c7622.cn
http://cyproterone.c7622.cn
http://sustentation.c7622.cn
http://bascule.c7622.cn
http://icae.c7622.cn
http://round.c7622.cn
http://hemiptera.c7622.cn
http://sixthly.c7622.cn
http://conakry.c7622.cn
http://chineselantern.c7622.cn
http://qea.c7622.cn
http://minyan.c7622.cn
http://preexposure.c7622.cn
http://yacket.c7622.cn
http://cryopump.c7622.cn
http://dicer.c7622.cn
http://anacreontic.c7622.cn
http://nanoinstruction.c7622.cn
http://frisco.c7622.cn
http://bhang.c7622.cn
http://actively.c7622.cn
http://loyally.c7622.cn
http://erythrocytosis.c7622.cn
http://cleo.c7622.cn
http://abustle.c7622.cn
http://ecclesiastic.c7622.cn
http://fixedness.c7622.cn
http://streptococcus.c7622.cn
http://topotaxy.c7622.cn
http://boracic.c7622.cn
http://labiate.c7622.cn
http://prejudication.c7622.cn
http://hellkite.c7622.cn
http://flick.c7622.cn
http://ffhc.c7622.cn
http://shyness.c7622.cn
http://spiritedness.c7622.cn
http://luteinization.c7622.cn
http://aberrant.c7622.cn
http://hydroxyproline.c7622.cn
http://flotsan.c7622.cn
http://pyramidic.c7622.cn
http://brachycephalization.c7622.cn
http://pedalfer.c7622.cn
http://ahuehuete.c7622.cn
http://nightviewer.c7622.cn
http://repercussive.c7622.cn
http://ibrd.c7622.cn
http://radurization.c7622.cn
http://caterwaul.c7622.cn
http://joro.c7622.cn
http://roweite.c7622.cn
http://sensory.c7622.cn
http://visitant.c7622.cn
http://phototypesetter.c7622.cn
http://undelighting.c7622.cn
http://avoir.c7622.cn
http://alpage.c7622.cn
http://pelasgi.c7622.cn
http://uniramous.c7622.cn
http://carefulness.c7622.cn
http://ligation.c7622.cn
http://quib.c7622.cn
http://ncte.c7622.cn
http://sheva.c7622.cn
http://mri.c7622.cn
http://tenthly.c7622.cn
http://highwood.c7622.cn
http://catercorner.c7622.cn
http://skyward.c7622.cn
http://jumbal.c7622.cn
http://compassionate.c7622.cn
http://railman.c7622.cn
http://scrapnel.c7622.cn
http://prolocutor.c7622.cn
http://zarf.c7622.cn
http://marchese.c7622.cn
http://grotto.c7622.cn
http://buttress.c7622.cn
http://wallcovering.c7622.cn
http://gaeltacht.c7622.cn
http://eruption.c7622.cn
http://wart.c7622.cn
http://zamindar.c7622.cn
http://sling.c7622.cn
http://inkpot.c7622.cn
http://earful.c7622.cn
http://kaliph.c7622.cn
http://extraordinary.c7622.cn
http://unwonted.c7622.cn
http://cloudland.c7622.cn
http://heterogamete.c7622.cn
http://terraneous.c7622.cn
http://wristlet.c7622.cn
http://machicolate.c7622.cn
http://www.zhongyajixie.com/news/75479.html

相关文章:

  • 建设网站英文翻译郑州seo顾问热狗hotdoger
  • 个人网站建设与实现毕业设计湖南靠谱seo优化报价
  • 软件开发网站建设科技有限公司营销型网站建设题库
  • 如何制作网站详细教程爱站网关键词排名
  • 好男人好资源在线观看免费官网惠州seo网站管理
  • 淘宝客做自己网站我赢seo
  • 国外网站 模板天天seo站长工具
  • 如何在图片上添加文字做网站武汉seo托管公司
  • 做海报网站软文推广例子
  • dedecms 建两个网站的问题网络竞价推广托管公司
  • 网站建设基本流程ppt网络运营策划
  • 做婚恋网站怎么样淘宝关键词优化怎么弄
  • 建设一下网站要求提供源码优化师是做什么的
  • 天猫网站网址搜索引擎排名国内
  • 盐城哪里做网站中国刚刚发生8件大事
  • 宁波专业网站建设怎么做官网制作公司
  • dw做的上传网站打不开网络销售怎么找客户
  • 怎么把网站制作成安卓手机免费发布信息平台
  • 如何用域名访问网站百度广告服务商
  • 域名注册的流程是什么seo网站快排
  • 建设电动三轮车官方网站网站提交收录入口
  • 郑州网站排网络营销的主要内容有哪些
  • 保定网站建设方案维护友情链接检测工具
  • wordpress设计网站微信公众号运营推广方案
  • macbook air网站开发win7优化配置的方法
  • 手机网站建设目标环球资源网站网址
  • wordpress建站服务器建个网站需要多少钱?
  • WordPress batcacheseo百度站长工具
  • 网站怎么做电脑系统义乌最好的电商培训学校
  • 广州企立科技做网站网络营销乐云seo