- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c 递推算法详解_图文
方法三 分析用1*2的骨牌覆盖列的位置来计算方案数 1.如果i为偶数,覆盖方案分为两类: (1)没有竖立覆盖其中一列的情况:全部用横向覆盖的方案,方案数为1; (2)有竖立覆盖的情况:为了避免重复,考虑第一次竖立覆盖的位置在x列,x必须是奇数,而且前1到x-1列覆盖方法唯一,全部采用横向覆盖,方案数等于后面i-x列的覆盖情况,即f[i-x]。 所以当i为偶数时,f[i]=1+f[1]+f[3]+...+f[i-3]+f[i-1] 2.如果i是奇数,一定有竖立覆盖的情况,f[i]=1+f[2]+f[4]+.....+f[i-3]+f[i-1] 如何证明该递推关系式等价于f[i]=f[i-1]+f[i-2]? 试着用横向覆盖的来分析递推关系式。 * 方法四 分治,一分为二来考虑,左边为n div 2列,右边为n-n div 2列,如果左右独立则方案数为f[n div 2]*f[n-n div 2],如果有横向覆盖第n div 2列和第n div 2+1列,则方案数为f[n div 2-1]*f[n-n div 2-1] 所以f[n]= f[n div 2]*f[n-n div 2]+f[n div 2-1]*f[n-n div 2-1] * 参考代码: #include fstream using namespace std; long long f[60]; ifstream fin(domino.in); ofstream fout(domino.out); int main() { int n,i; finn; f[1]=1; f[2]=2; for(i=3;i=n;i++) f[i]=f[i-1]+f[i-2]; foutf[n]endl; return 0; } * 本模板来源于网络,由第一课件网整理发布,免费分享给大家使用。 更多精彩PPT模板,请访问 使用时删除此备注即可。 配色方案修改: 配色方案在【格式】--【幻灯片设计】--【配色方案】--【编辑配色方案】下调整。 LOGO的添加: Logo添加修改在【视图】--【母版】--【幻灯片母版】下调整。直接选择logo图片删除或修改。 字体格式的设置: 括标题和文本格式的设置在【视图】--【母版】--【幻灯片母版】下调整。 递 推 算 法 * 确定状态 确定递推关系和边界条件 程序实现 * 例1:计算系数(NOIP2011day2) 【题目描述】给定一个多项式(ax+by)k,请求出多项式展开后xnym项的系数 【输入】共一行,包含5个整数,分别为a,b,k,n,m,每两个整数之间用一个空格隔开。 【输出】输出共1行,包含一个整数,表示所求的系数,这个系数可能很大,输出对10007 取模后的结果。 【输入输出样例】 factor.in factor.out 1 1 3 1 2 3 【数据范围】 对于 30%的数据,有0≤k≤10; 对于 50%的数据,有a = 1,b = 1; 对于 100%的数据,有0≤k≤1,000,0≤n, m≤k, 且n + m = k,0≤a,b≤1,000,000。 * 方法一 根据二项式定理可知: (ax+by)k= = 取i=n,xnym的系数为 其中an和bm可以用快速幂来计算,在lg(n)+lg(m)内完成。 计算 可以用递推来求解。 状态:f[i,j]表示从i个数中选j个数的方案数。f[k,n]就是答案。 根据第i数选还是不选来进行分析: 1.选择第i个数:此情况的方案数等价于从i-1个数中选择j-1个数的方案数即f[i-1,j-1]; 2.不选第i个数:此情况的方案数等价于从i-1个数中选择j个数的方案数即f[i-1,j] 所以f[i,j]=f[i-1,j-1]+f[i-1,j] 边界条件:f[i,0]=1,f[i,i]=1。 时间复杂度为O(n*k)。 * 方法二 当k达到106的时候,方法一会超时。 由于10007是素数,在计算C(k,n)mod 10007时可以采用扩展GCD来解决。 时间复杂度为O(k)。 * 参考代码: #include iostream #include fstream using namespace st
您可能关注的文档
- Brother MFC-J430W_MFC-J432W一体机(中文)基本使用说明书.pdf
- BS 7079-2009 General introduction to standards for preparation of steel substrates before application of paints and related products.pdf文档.pdf
- BS EN 10083-2-1991文档文档.pdf
- Brother MFC-J6510DW_MFC-J6710DW一体机(中文)说明书.pdf
- bvi企业性公司章程汉语版【最新精选】.doc
- B类人员考试要点(09年补充资料).doc
- BY各级安全生产责任制和安全生产规章制度目录及文件,操作规程目录[试题].doc
- C ,实现进程调度算法,有先来先服务、优先级调度、短作业优先、响应比高优先.doc
- C _实现进程调度算法_有先来先服务、优先级调度、短作业优先、响应比高优先.doc
- BSC在J物流公司绩效评价指标体系设计中的应用毕业论文(可编辑).doc
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)