POJ 2718 穷举】的更多相关文章

题意:给定一组数字,如0, 1, 2, 4, 6, 7,用这些数字组成两个数,并使这两个数之差最小.求这个最小差.在这个例子上,就是204和176,差为28. 分析:首先可以想到,这两个数必定是用各一半数量的数字组成的数,如给出6个数,把这6个数分为两组,每组3个,这样组成的数字的差必定比其他方式小.接下来的任务就是穷举所有可能出现的组合,并求出最小差.在这里可以使用STL的next_permutation函数来求给定这组数字的所有排列,并将其分为两组组成数字,然后记录最小差.需要注意第一个数位…
题意:给定一个5*5的地图,每个格子上有一个数字.从一个格子出发(上下左右4个方向),走5步将数字连起来可以构造出一个6位数.问该地图可以构造出多少个不同的6位数. 分析:可以对每个格子做深度优先遍历,构造出所有数字,但要注意不要重复计数.在这里,我使用了set来保存已构造出的数字,结果就是set中的元素个数. #include <cstdio> #include <set> #include <algorithm> using namespace std; //输入…
题意:已知有N个数分别为1-N,如下图为4个数.相邻两两相加直至只剩下一个数,下图的结果就是16. 3 1 2 4     4 3 6   7 9 16 现在反过来看,告诉你数的个数N和最终结果,问这N个数的初始序列是什么.求出字典序最小的初始序列.上图的初始序列也可以是3 2 1 4,但这不是字典序最小. 分析:这题用全排列的方式非常容易做.首先初始化数组为1-N,然后用STL提供的按字典序生成全排列的函数next_permutation即可枚举全排列.对于每一组数,通过计算可以知道它是否能得…
下面给出两道POJ上的问题,看如何用穷举法解决. [例9]Calling Extraterrestrial Intelligence Again(POJ 1411) Description A message from humans to extraterrestrial intelligence was sent through the Arecibo radio telescope in Puerto Rico on the afternoon of Saturday November 16…
关于背包问题的题目,前人之述备矣,这里只讨论实现 输入: n ca w_1 v_1 w_2 v_2 ... w_n v_n 其中,n是物品总数,ca是背包大小,w_n是第n个物品的重量,v_n是第n个物品的价值 输出: v_1 x v_2 x v_3 x ... 其中,v_n是当前情况为x时背包的价值,x是一串序列,由0,1组成,表示是否放入背包 如: 1001就表示第一个和最后一个物品放入背包,中间两个物品不放入 要求编写一个程序,输出所有可满足解. 思路很简单,就是穷举.穷举每一个情况. 伪…
穷举:  穷举法的基本思想是根据题目的部分条件确定答案的大致范围, 并在此范围内对所有可能的情况逐一验证,直到全部情况验证完毕.若某个情况验证符合题目的全部条件,则为本问题的一个解:若全部情况验证后都不符合题目的全部条件, 则本题无解.穷举法也称为枚举法. 穷举练习: int n = 1;            for (int i = 0; 2 * i <= 100; i++)            {                for (int a = 0; 5 * a <= 100;…
一.for循环拥有两类: (一).穷举: 把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. 1.单位给发了一张150元购物卡,拿着到超市买三类洗化用品.洗发水15元,香皂2元,牙刷5元.求刚好花完150元,有多少种买法,没种买法都是各买几样? int ci = 0; int biao = 0;//标记变量 for (int x = 0; x <= 10; x++) { for (int y = 0; y <= 30; y++) { for (int z = 0; z <=…
for循环的穷举: 就是所有情况走一遍,使用if筛选出符合的情况. while循环分为2个格式 (1)先判断再做while(){}(2)不管对错,先做了在判断do{}whlie() 百鸡百钱的while做法 习题: 4:篮球每次弹起高度为上一次的四分之三,初始高度若为20米,输入次数求弹起高度. 5:一个老汉赶一群羊出来卖,每经过一个村庄卖掉羊总数的二分之一多一只,到第八个村庄还有三只羊,问最初有多少只羊. 6:100以内质数的和…
穷举 将所有可能性全部全部走一遍,使用IF筛选出满足的情况 练习: 1.单位给发了一张150元购物卡, 拿着到超市买三类洗化用品. 洗发水15元,香皂2元,牙刷5元. 求刚好花完150元,有多少种买法, 没种买法都是各买几样? ; ; ; x <= ; x++) { ; y <= ; y++) { ; z <= ; z++) { j++; + y * + z * == ) { i++; Console.WriteLine("方法{0},买洗发水[{1}].牙刷[{2}],香皂[…
今天的新内容1:while循环 格式: while() { } 初始状态要在循环外提前规定 状态改变要写在花括号里面 括号内是循环条件 for循环与while循环的对比: 2:do while 不管循环条件是否满足 先执行一遍循环体 格式为: do { }while() 如上图 条件不满足 但仍然输出了一遍WORLD 3:穷举 经典题目百鸡百钱:公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只,总共只有100文钱,如何在凑够100只鸡的情况下刚好花完100文钱? 使用while循环实现: 4:迭代…