


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在一个圆形操场的四周摆放着n堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分,并分析算法的计算复杂性。#include #include #define N 500#define oo #define MIN(a, b) (a)(b)?(a):(b)typedef struct int c, d; Node;int n;int vN; / 每堆石头的个数int saveN; / 输出最优解的具体合并需要随时改变 v 的值,所以为了同时输出最小,最大的合并,在完成一个任务之后需要回溯Node fNN; / fij存储最优解,同时存储合并线索int sumNN; / sumij 表示从第 i 堆起,顺时针数j堆的石子总数void Print(int i, int j) / 递归打印子序列fij的合并过程int k, x;if(j != 1) Print(i, fij.d); / 倒推子序列 1 的合并过程x = (i + fij.d - 1)%n + 1;Print(x, j - fij.d); / 倒推子序列 2 的合并过程for(k = 1; k 0)if(i = k | x = k) printf(-%d , vk); / -号表示这次操作合并该堆else printf(%d , vk);printf(n);vi = vi + vx; / 新堆的大小vx = -vx; / 置为- 类似于删除void Solve(int flag) / flag = 0求最小得分, flag = 1 求最大得分int i, j, k, x, t, result;for(i = 1; i = n; i+) / 仅含一堆石子的序列不存在合并fi1.c = fi1.d = 0;for(j = 2; j = n; j+) / 顺推含2堆,3堆.n堆石子的各子序列的合并方案for(i = 1; i = n; i+) t = sumij;if(flag = 0) fij.c = oo; / 求最小得分,那么需要初始化为 ooelse fij.c = 0; / 求最大得分,那么需要初始化为 0for(k = 1; k = j-1; k+) x = (i + k - 1)%n + 1;if(flag = 0 & fik.c + fxj-k.c + t fij.c) fij.c = fik.c + fxj-k.c + t;fij.d = k;result = f1n.c; k = 1; / 在子序列f1n, f2n.fnn中寻找最优值for(i = 2; i = n; i+)if(flag = 0 & fin.c result)result = fin.c;k = i; / 记录下 kprintf(%s score is : %dn, flag = 0 ? min : max, result);printf(合并过程如下:n);Print(k, n); / 由此 k 出发 倒推合并过程printf(%dnn, sum1n); / 输出最后一次将石子合并成一堆的石子总数int main()int i, r, j, k, x, t;while(scanf(%d, &n), n) for(i = 1; i = n; i+) scanf(%d, &vi);/memset(sum, 0, sizeof(sum);memcpy(save+1, v+1, n*sizeof(v1);for(i = 1; i = n; i+) sumi1 = vi;for(j = 2; j = n; j+)for(i = 1; i = n; i+)sumij = vi + su
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 象棋知识培训教案课件
- 2025年安防产品购销合同书标准范本
- 2025版人工智能产业融资合作协议合同范本
- 2025大连二手房地产抵押贷款服务合同
- 2025年度生态农业产品店铺装修补贴及农产品直销合同
- 2025不锈钢玻璃地弹门工程环保验收及排放合同
- 2025版融资租赁合同违约责任及处理办法
- 2025版智能物流国内货物公路运输服务合同模板
- 请假条说课课件
- 2025制片合同产品样本
- 2025年秋新北师大版数学三年级上册全册教学设计
- 2025-2026人教版(2024)物理九年级全册教学进度表
- 义务教育质量监测学校成绩分析报告
- 2025版房地产抵押按揭续贷合同
- 2025年秋季小学四年级上册语文教学计划及教学进度表
- 北京市西城区2024-2025学年七年级下学期期末道德与法治试题(解析版)
- 2025年广东省高考化学试题(含答案解析)
- 【2025秋新版】三年级上册语文生字组词
- 《智能建造概论》高职完整全套教学课件
- 2025年中小学教师师德师风考试题库及答案
- 节能环保供货保证措施
评论
0/150
提交评论