题目要求

P2036题目链接

分析

这是一个入坑级的DFS题

用递归完成DFS即可。
下面递归代码的i表示当前配料的ID,因为要逐一尝试的嘛。x表示酸度,由于是×,初始1;y表示甜度,由于+,初值0。递归的终结篇一定要让i>num,保证跑完一趟。
既然要求酸度和甜度的绝对差最小,那就在i>num,递归终止前比较更新一下min的值就好啦。
递归的时候在每次分叉的时候都要分别进行本次选和不选两种情况的递归,每次都分两种情况,类似搜索树,也正印证了本题是朴素的DFS递归搜索题(当然也可以不用递归啦)。这里比较朴素,应该是O(2n)吧,毕竟没法去剪枝啥的,你不到最后也不知道结果是怎样的呀Orz……
1<=N<=10,210=1024,炸不了的,完美……

很恶心的一点是result要赋初值为0x3f3f3f3f,当然可以有很多种赋值,如果不管的话会得到42分,WA到自闭。

看这位大佬的博客,也可提供另一种思路 → 位运算解法

AC代码(Java语言描述)

import java.util.Scanner;public class Main {private static int[] acidity_array;private static int[] sweetness_array;private static int num;private static long result = 0x3f3f3f3f;private static void dfs(int i, long x, long y) {if(i > num){if(x!=1 || y!=0) {result = Math.min(Math.abs(x-y), result);}return;}//添加的情况dfs(i + 1, x * acidity_array[i], y + sweetness_array[i]);//不添加的情况dfs(i + 1, x, y);}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);num = scanner.nextInt();acidity_array = new int[num+1];sweetness_array = new int[num+1];for (int i = 1; i <= num; i++) {acidity_array[i] = scanner.nextInt();sweetness_array[i] = scanner.nextInt();}scanner.close();dfs(1, 1, 0);System.out.println(result);}}

PERKET(洛谷P2036题题解,Java语言描述)相关推荐

  1. 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)

    题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...

  2. 队列模拟约瑟夫问题(洛谷P1996题题解,Java语言描述)

    题目要求 P1996题目链接 分析 以前就研究过"约瑟夫环"问题: <单循环链表求解约瑟夫环问题(Java语言描述)> <杀人游戏~约瑟夫环(洛谷P1145题题解 ...

  3. 枚举求解单词方阵(洛谷P1101题题解,Java语言描述)

    题目要求 P1101题目链接 分析 可以用DFS做,但我立下了个Flag,所以就用了朴素的枚举来做.... 结果,我的天哪,做了好几个小时-- 其实这种地图题,真的适合 DFS or BFS or D ...

  4. 快速幂||取余运算【模板】(洛谷P1226题题解,Java语言描述)

    题目要求 P1226题目链接 分析 标准的快速幂取模算法板子,之前这个算法我在这篇文章中讲过了:<快速幂算法详解&&快速幂取模算法详解>. 这里选择使用比较简单的API实现 ...

  5. 贪心策略摘果子(洛谷P1478题题解,Java语言描述)

    题目要求 P1478题目链接 分析 本题的低配版题目链接 → 题解 那个题就是纯水题没啥可写的,我除了贴代码无话可说,但这题吧,虽然不算难,但也可一说. 建议大家移步这里 → 精辟题解 这位爷写了本题 ...

  6. 麦森数(洛谷P1045题题解,Java语言描述)

    题目要求 题目链接 分析 这题挺经典的,快速幂取模算法,如果求出大数再取模就可能T掉. 之前有篇文章写了这个算法:<快速幂算法详解&&快速幂取模算法详解> 既然是Java, ...

  7. 求子集元素之和(洛谷P2415题题解,Java语言描述)

    题目要求 P2415题目链接 分析 这题我觉得--当个数学题做就好了嘛. 有一个数N的情况:result = 1 * N 有两个数N1.N2的情况:result = 2 * (N1+N2) 有三个数N ...

  8. N进制正反累加判回文数(洛谷P1015题题解,Java语言描述)

    题目要求 P1015题目链接 分析 开始的时候写了这么一个代码,应该是比较基础的,是十进制的. private static void low() {Scanner scanner = new Sca ...

  9. 试试把OJ题意抽象成物理模型(洛谷P1007题题解,Java语言描述)

    题目要求 P1007题目链接 分析 这题干出的,真有毒... 要是有这种指挥官,也是醉了... 言归正传,这题其实是可以贪心求解的,但我们还可以更加666... 事实上,题干上面那一大篇基本在扯,关键 ...

最新文章

  1. 注册和登陆与数据库的链接
  2. VTK:libvtkGUISupportQt-6.3.so.1: cannot open shared object
  3. Shell编程入门基础上
  4. 计算机a类论文汇报,计算机学院2014年度发表和录用CCFA类、B类论文统计(初稿.xls...
  5. Kaldi的英文缩写
  6. 几十m的中文linux系统,体积只有十几M的linux系统Tiny Core安装体验
  7. SpringMVC 异常的处理
  8. python定时任务_Python 定时任务的实现方式
  9. 高德地图经纬度检索校验
  10. 图文解析大二层网络及VxLAN技术
  11. android:persistent=true作用
  12. 自己动手写操作系统学习笔记(一)---MBR,PBR,BPB,文件系统
  13. VIVO市场ASO实战详解,vivo应用市场优化
  14. 三个表情纪念我的像素画讲座
  15. iOS教程:移动终端游戏动画设计的12个原则
  16. 第二十三篇-ubuntu18.04怎么下载播放器以及如何设置默认播放器
  17. SVG滤镜对图片调色
  18. 姊妹篇:我是一块声卡
  19. 大话设计模式之爱你一万年:第七章 结构型模式:装饰器模式:爱你就要让你更美丽:为爱找份工作:1.装饰器模式概念
  20. Java_Mybatis(Dao层_框架)

热门文章

  1. Pytorch中的Batch Normalization操作
  2. [工具]iperf测试带宽
  3. HappyLeetcode64:Sqrt(x)
  4. VMware-workstation-full-8.0.0-471780.exe
  5. json 字符串反序列化成DataSet
  6. OpenPBS 脚本
  7. Vue入门 ---- vue-loader 、vue-cli
  8. mysql5.7.12安装问题
  9. js中给多个class属性的标签赋值
  10. 光绘文件 c语言 解析,AltiumDesigner输出光绘文件