有哪些信誉好的足球投注网站算法例题讲解(Good).pptVIP

有哪些信誉好的足球投注网站算法例题讲解(Good).ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
有哪些信誉好的足球投注网站算法例题讲解(Good)

有哪些信誉好的足球投注网站算法例题讲解 史宁 西安电子科技大学ACM基地 例1:放苹果(POJ1664) Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不 放,问共有多少种不同的分法?(5,1,1和1,1,5是同一种 方法) Input 以下每行均包含二个整数M和N,以空格分开。1=M,N=10 Output 对输入的每组数据M和N,用一行输出相应的K。 Sample Input 7 3 Sample Output 8 数据分析 当n=7,m=3时,有以下几类分法: 0 0 7 0 1 6 0 2 5 0 3 4 1 1 5 1 2 4 1 3 3 2 2 3 题目分析 这里需要注意两个同样,盘子是相同的,而且苹果也相同。所以说随意调换盘子和苹果的位置是可以的。 题目抽象出的数学模型就是把一个数n拆成m份,使得a1+a2……am=n,0=ai=n 接下来我们看下数据规模, 1=m,n=10,很小,暴力有哪些信誉好的足球投注网站可行! 算法分析 题目给出了苹果和盘子全相同,所以说我们这里为了让题目变的简单,假设让ai=ai+1,正如上面的例子所看到的一样。 有哪些信誉好的足球投注网站时我们需要设置一个条件,就是当放置苹果到第i个盘子的时候,必须要求第i-1个盘子中的苹果小于第i个盘子,如果大于我们继续加1,直到第i个盘子放置的苹果大于等于第i-1个盘子中的苹果。如果剩下的苹果已经小于前一个盘子中的苹果,我们停止这个分支的有哪些信誉好的足球投注网站。 算法分析二 临界条件的设置: 有哪些信誉好的足球投注网站不是无穷的有哪些信誉好的足球投注网站下去,它必须有个条件来约束它,这个题目中,当m个盘子都放满苹果时我们结束有哪些信誉好的足球投注网站。 初始赋值与递归运算: 当程序开始时,我们已经将0个苹果放置到1号盘子,递归运算的时候,我们将循环值从0到n,这样子就可以让每个盘子都能放置0到n个苹果,即便它不符合要求。 代码分析 void dfs(long k, long w) //初始k=1,w=0; k表示现在已用几个盘子,w表示已经放了几个苹果 { long i,u; if (k==m) //当最后一个盘子被放置苹果的时候我们进行判断 { if (n-w=s[k-1]) { s[k]=n-w; z=z+1; } return; } for (i=0;i=n;i++) if (i=s[k-1]) //如果当前放置的苹果个数大于前一个盘子继续放置 { w=w+i; s[k]=i; k=k+1; dfs(k,w); w=w-i; k=k-1; } } 算法效率的分析 此算法的效率比较低,为指数级算法。效率相当之低下,不过应对10以内的数据完全能达到要求。 下面我们看一个剪枝。当剩下的苹果平均放到剩余的盘子中的时候,每个盘子分的的苹果数目小于前一个盘子放置的苹果数目,这样就不满足我们给的要求ai-1ai,所以我们对它进行剪枝。下面是剪枝优化后的程序。 算法的部分优化 void dfs(long k, long w) { long i,u; if (k==m) { if (n-w=s[k-1]) { s[k]=n-w; z=z+1; } return; } for (i=0;i=n;i++) if ((i=s[k-1])((n-w)/(m-k)=s[k-1])) //优化剪枝部分 { w=w+i; s[k]=i; k=k+1; dfs(k,w); w=w-i; k=k-1; } } 优化前后的对比 有哪些信誉好的足球投注网站题目小结 暴力有哪些信誉好的足球投注网站只能在很小的数据范围内使用,一般情况下,所谓的暴力也就是枚举了所有的状态,在这些状态中找到最终的解。在很多情况下,有哪些信誉好的足球投注网站题目有以下几类:1.求所有状态的个数,例如放苹果。2.找出所有解的状态,例如把放苹果的每种方式求出来。3.求其中一个可行解。4.求出所有可行解的最

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档