- 1、本文档共116页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
//若符号统计未超过半数,并且另一种符号也未超过半数? * * * * * 问题:对于第一行有n个符号的符号三角形,计算有多少个不同的符号三角形,其所含的“+”和“-”的个数相同。 解题思路:? 不断改变第一行每个符号,搜索符合条件的解,可以使用递归回溯?。 为了便于运算,设+?为0,-?为1,这样可以使用异或运算符表示符号三角形的关系?。++为+即0^0=0,?--为+即1^1=0,?+-为-即0^1=1,?-+为-即1^0=1;? 因为两种符号个数相同,可以对题解树剪枝,?当所有符号总数为奇数时无解,当某种符号超过总数一半时无解? * 2. 算法设计 解向量:用n元组x[1:n]表示符号三角形的第一行。 x[i]=1,表示第1行第i个符号为“+”; x[i]=0,表示第1行第i个符号为“-”。 可以用一棵完全二叉树表示其解空间。 在x[1:i]确定后,就确定了一个由i(i+1)/2个符号组成的符号三角形。 x[i+1]的值确定后,只要在已确定的三角形右边加一条边,即可得到x[1:i+1]所对应的符号三角形。 + + - + - + + + - - - - + - + + + - - + + - - + - - - + i i+1 * 对于给定的n,符号总个数为n(n+1)/2。 约束条件:当前三角形中“+”与“-”的个数均不超过n(n+1)/4。 当n(n+1)/2为奇数时,显然不是满足条件的符号三角形。 * class Triangle { friend int Compute(int); private: void Backtrack(int t); int n; //第一行的符号个数 int half; //n*(n+1)/4 int count; //当前“+”号个数 int **p; //符号三角形矩阵 long sum; //已找到的符号三角形数 }; * void Triangle::Backtrack(int t) //第1行有t个符号 { if((counthalf)||(t*(t-1)/2-count)half) //+或-的个数超过n(n+1)/4 return; if(tn) sum++; //符号填充完毕?? else for(int i=0;i2;i++) //每一位上取值只有两种情况-(0)或+(1) { p[1][t]=i; //第一行的第t位的符号为i count+=i; //累记+的个数 for(int j=2;j=t;j++) //计算新增边的其余各点; //当第一行符号=2时,可以运算出下面行的某些符号?? { p[j][t-j+1]=!(p[j-1][t-j+1]^p[j-1][t-j+2]); //通过异或运算下行符号?? count+=p[j][t-j+1]; } Backtrack(t+1); ?//在第一行增加下一个符号?? for(int j=2;j=t;j++) //恢复计数,为t位为下一种情况作准备回溯,判断另一种符号情况?? count-=p[j][t-j+1]; count-=i; } } 1 1 0 1 0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 1 * int Compute(int n) { Triangle X; X.n=n; X.count=0; X.sum=0; X.half=n*(n+1)/2; if(X.half%2==1) //n(n+1)/2为奇数时,无解 return 0; X.half=X.half/2; * int **p=new int*[n+1]; for(int i=0;i=n;i++) p[i]=new int[n+1]; for(int i=0;i=n;i++) for(int j=0;j=n;j++) p[i][j]=0; X.p=p; X.Backtrack(1); return X.sum; }
您可能关注的文档
- 2016年营业税改征增值税专题培训学习解读课件完整版本.ppt
- 2018-2019年甘肃省兰州市第一中学高一下学期期中考试试卷--数学--(word版).doc
- 2018-2019年高中生物人教版必修2第7章现代生物进化理论-章末检测试卷(七).docx
- 2018-2019年吉林省蛟河市第一中学校高一下学期期中考试试卷--数学-(word版).doc
- 2018-2019年江苏省江阴市四校高二(下)期中数学(文科)试题-解析版.doc
- 表面处理知识1.ppt
- 波谱分析技术第一章.ppt
- 齿轮齿条的基本知识和应用.ppt
- 高考物理考前30天冲刺系列2.3传送带问题探究.doc
- 高考物理考前30天冲刺系列2.4圆周运动及应用.doc
- 地理信息科学_第三次农业普查影像数字化项目.pdf
- 土地利用变化分析实验.docx
- 2025年中考语文二轮复习备考:小说阅读理解提高练(含答案).docx
- 2025年黑龙江省哈尔滨市中考一模英语试题2(含答案).docx
- 2024-2025学年高一(下)期中语文试卷(含解析).docx
- 贵州省毕节市金沙县第四中学2024-2025学年春季学期第一次月考考试试卷七年级语文(含答案).docx
- 2025年人教版九年级中考英语语法专题练习 特殊句型(含答案).docx
- 2025年湖北省襄阳市襄州区中考二模语文试题(含答案).docx
- 贵州省安顺市2025届高三下学期4月适应性考试语文试题(含答案).docx
- 湖北省仙桃市田家炳实验高级中学2024-2025学年高一下学期4月期中考试语文试题(含答案).docx
最近下载
- (高一集合练习题一附答案.docx VIP
- 35-14462小学综合性学习与跨学科教学 讲义.pdf VIP
- 湖南省长沙市长郡集团2023-2024学年八年级下学期期中考试英语试题(解析版).pdf VIP
- 医院搬迁服务投标方案(技术方案).doc
- Rossler系统的电路板实现及混沌控制.pdf VIP
- NYT 4432-2023 农药产品中有效成分含量测定通用分析方法 气相色谱法.pdf
- 梅特勒托利多-防爆知识和防爆称重产品介绍-立德
- 内衣销售培训ppt课件.pptx
- 梅特勒托利多-IND560 免砝码量程校正-立德科技提 VIP
- 2025年河南信息统计职业学院单招职业技能测试题库及答案解析.pdf VIP
文档评论(0)