Description

  佳肴就是非常美味的菜的意思,佳肴最关键的是选择好原料。
  现在有N种原料,每种原料都有酸度S和苦度B两个属性,当选择多种原料时,总酸度为每种原料的酸度之积,总苦度为每种原料的苦度之和。
  正如大家所知,佳肴是既不酸也不苦的,因为要保证所选的原料使得总酸度和总苦度差的绝对值最小。
  由于佳肴不能只有水,所以必须至少选择一种佳肴。

Input

  输入第一行包含一个整数N(1<=N<=10),表示原料的种数。
  接下来N行每行包含两个用一个空格隔开的整数,分别表示酸度和苦度。
  输入数据保证如果所有原料都选上,总酸度和总苦度不会超过10^9。

Output

  输出总酸度和总苦度最小的差。

Sample Input

输入1:
1
3 10输入2:
2
3 8
5 8输入3:
4
1 7
2 6
3 8
4 9

Sample Output

输出1:
7输出2:
1输出3:
1

Data Constraint

Hint

【样例解释】
  样例3中选择最后三种原料,这样总酸度为2×3×4=24,总苦度为6+8+9=23,差为1。

正解

因为N<=10,所以可以枚举所有的情况,对总酸度和总苦度的差的绝对值取min就可以啦。(这种良心数据要珍惜啊)

可以用一个类似状压/dfs做

CODE

dfs版

varn,i,j,ans:longint;a,b:array[1..10] of longint;
procedure dfs(pick,dep,x1,x2:longint);
beginif dep=n thenbeginif (abs(x1-x2)<ans) and (pick>0) then ans:=abs(x1-x2);exit;end;dfs(pick,dep+1,x1,x2);dfs(pick+1,dep+1,x1*a[dep+1],x2+b[dep+1]);
end;
beginreadln(n);for i:=1 to n doreadln(a[i],b[i]);ans:=maxlongint;dfs(0,0,1,0);writeln(ans);
end.

类似状压版

uses math;
vartot,n,i,j,s:longint;sums,sumk,ans:int64;x,y,b:array[0..20]of longint;pow:array[0..20]of int64;
beginreadln(n);pow[0]:=1;for i:=1 to n do beginreadln(x[i],y[i]);pow[i]:=pow[i-1]*2;end;ans:=maxlongint;for i:=1 to pow[n]-1 do beginj:=i;tot:=0;sums:=1;sumk:=0;while j<>0 do begins:=j mod 2;inc(tot);b[tot]:=s;j:=j div 2;end;for j:=1 to tot do beginif b[j]=1 then beginsums:=sums*x[j];sumk:=sumk+y[j];end;end;ans:=min(ans,abs(sums-sumk));end;writeln(ans);
end.

jzoj 1420. 佳肴相关推荐

  1. JZ高中OJ 1420.佳肴

    Time Limits: 1000 ms  Memory Limits: 65536 KB  Detailed Limits  Description 佳肴就是非常美味的菜的意思,佳肴最关键的是选择好 ...

  2. JZOJ 5461 购物 —— 贪心

    题目:https://jzoj.net/senior/#main/show/5461 贪心,原来想了个思路,优先选优惠价最小的 K 个,然后其他按原价排序遍历: 如果当前物品没选过,原价选上,如果选过 ...

  3. JZOJ 5372. 【NOIP2017提高A组模拟9.17】猫

    Description 信息组最近猫成灾了!隔壁物理组也拿猫没办法.信息组组长只好去请神刀手来帮他们消灭猫.信息组现在共有n 只猫(n 为正整数),编号为1 到n,站成了一个环,第i 只猫的左边是第i ...

  4. [jzoj NOIP2018模拟 11.01]

    很庆幸打了这场模拟赛,因为这一场爆零 好像上次纪中的某场比赛我也出现了同样的问题,光是计算时间复杂度而忘记了空间的限制.想必是比上次惨的,考场上就写了两题而这两题都因为MLE爆零了.而且我T2还码了7 ...

  5. 【DP】小学生语文题(jzoj 5102)

    正题 jzoj 5102 题目大意 给你两个串A,B,字母个数相等,可以把B的一个字符移到前面某个位置,问你最少移多少次可以使A,B相等 解题思路 设fi,jf_{i,j}fi,j​为A匹配了i-n, ...

  6. 【二分】防具布置/秦腾与教学评估(ybtoj 二分-1-2/jzoj 1253/luogu 4403)

    正题 ybtoj 二分-1-2 jzoj 1253 luogu 4403 题目大意 给出n组数:si,ei,dis_i,e_i,d_isi​,ei​,di​ 对于每组数据,表示在sis_isi​加1, ...

  7. 【归并排序】奶牛的图片(jzoj 1812)

    奶牛的图片 jzoj 1812 题目大意 给你一个序列,你可以交换相邻的两个数 让你用最少的交换次数来使得这个序列变成形如a+1,a+2...n,1,2...a−1,aa+1,a+2...n,1,2. ...

  8. 【归并排序】休息(jzoj 3462)

    休息 jzoj 3462 题目大意 给你一个序列,你每一回合把它划分成尽可能少的单调递减的序列(第一次划分到的序列长度都是偶数),然后把每个序列翻转,问你把它变成单调递增的序列要翻转多少次 输入样例 ...

  9. 秀姿势(jzoj 3464)

    秀姿势 jzoj 3464 题目大意 有n个数,每个数都有一个分组,现在问你最多去掉k个分组后,做多有多少个数是连续的同组的 输入样例 9 1 2 7 3 7 7 3 7 5 7 输出样例 4 样例解 ...

最新文章

  1. python发送微信消息_用python批量发送微信消息
  2. apache ab压力测试报错apr_socket_recv
  3. Cppunit 源码 SynchronizedObject
  4. quartz mysql索引_分布式系统中的定时任务全解(二)
  5. ASP.NET中Cookie编程的基础知识
  6. linux只能用一半的内存,linux可用内存足够为什么还用swap
  7. 什么是面向故事编程?
  8. open cv+C++错误及经验总结(十三)
  9. java 构建者模式_Java不可变类–构建器模式
  10. pySpark | pySpark.Dataframe使用的坑 与 经历
  11. VC6LineNumber完美破解版
  12. 杰控组态自定义串口通讯的经验
  13. 2018杭州云栖大会主要演讲:新杭州故事,平头哥与新制造
  14. java删除奇数文件_P041 删除ASCII值为奇数的字符 ★★
  15. 微信是胖客户端瘦服务器,一款管理微信客户软件的系统体系结构设计?
  16. linux入门怎么学
  17. Java基础——Day23——Lock和TCP传输
  18. ps打不开图片显示计算机丢失,电脑的ps软件打不开图片怎么解决
  19. 区块链应用开发入门(转)
  20. Hibernate QBC与QBE

热门文章

  1. android studio按钮点击事件,如何在Android Studio中添加按钮单击事件
  2. 蒙特卡洛搜索树python_蒙特卡洛树搜索最通俗入门指南
  3. Python 3.x爬虫技巧总结
  4. 2022年《国家职业教育智慧平台应用推广培训》课程-答案--(中职)已验证
  5. 平衡二叉排序树--调整方法快速记忆方法(渣男丢妻弃子法)
  6. Oracle EBS教学视频
  7. 公司某应用服务器被挂挖矿病毒处理流程
  8. java Char与char_JAVAc++中char和char[]的区别
  9. Android与Linux的区别
  10. 深度学习与无人车导论_深度学习导论